Skip to content

Commit e6113cf

Browse files
authored
Merge pull request #137 from marc-mabe/fix-EnumSet-getBinaryBitsetLe
fixed TypeError in EnumSet::getBinaryBitsetLe() …
2 parents c60b29b + bf331db commit e6113cf

File tree

2 files changed

+41
-7
lines changed

2 files changed

+41
-7
lines changed

src/EnumSet.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1064,7 +1064,7 @@ private function doGetBinaryBitsetLeInt()
10641064
*/
10651065
public function getBinaryBitsetBe(): string
10661066
{
1067-
return \strrev($this->bitset);
1067+
return \strrev($this->getBinaryBitsetLe());
10681068
}
10691069

10701070
/**

tests/MabeEnumTest/EnumSetTest.php

+40-6
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,41 @@ public function testGetBinaryBitsetLe()
378378
$this->assertSame(3, $set->count());
379379
}
380380

381-
public function testGetBinaryBitsetBe()
381+
public function testGetBinaryBitsetBeInt()
382+
{
383+
$set = new EnumSet(Enum32::class);
384+
385+
$enum1 = Enum32::ONE;
386+
$enum2 = Enum32::TWO;
387+
$enum3 = Enum32::THERTYTWO;
388+
$enum4 = Enum32::THERTYONE;
389+
390+
$set->add($enum1);
391+
$this->assertSame("\x00\x00\x00\x01", $set->getBinaryBitsetBe());
392+
$this->assertTrue($set->has($enum1));
393+
394+
$set->add($enum2);
395+
$this->assertSame("\x00\x00\x00\x03", $set->getBinaryBitsetBe());
396+
$this->assertTrue($set->has($enum2));
397+
398+
$set->add($enum3);
399+
$this->assertSame("\x80\x00\x00\x03", $set->getBinaryBitsetBe());
400+
$this->assertTrue($set->has($enum3));
401+
402+
$set->add($enum4);
403+
$this->assertSame("\xC0\x00\x00\x03", $set->getBinaryBitsetBe());
404+
$this->assertTrue($set->has($enum4));
405+
406+
$this->assertSame(4, $set->count());
407+
408+
$set->remove($enum2);
409+
$this->assertSame("\xC0\x00\x00\x01", $set->getBinaryBitsetBe());
410+
$this->assertFalse($set->has($enum2));
411+
412+
$this->assertSame(3, $set->count());
413+
}
414+
415+
public function testGetBinaryBitsetBeBin()
382416
{
383417
$set = new EnumSet(Enum65::class);
384418

@@ -387,25 +421,25 @@ public function testGetBinaryBitsetBe()
387421
$enum3 = Enum65::SIXTYFIVE;
388422
$enum4 = Enum65::SIXTYFOUR;
389423

390-
$set = $set->with($enum1);
424+
$set->add($enum1);
391425
$this->assertSame("\x00\x00\x00\x00\x00\x00\x00\x00\x01", $set->getBinaryBitsetBe());
392426
$this->assertTrue($set->has($enum1));
393427

394-
$set = $set->with($enum2);
428+
$set->add($enum2);
395429
$this->assertSame("\x00\x00\x00\x00\x00\x00\x00\x00\x03", $set->getBinaryBitsetBe());
396430
$this->assertTrue($set->has($enum2));
397431

398-
$set = $set->with($enum3);
432+
$set->add($enum3);
399433
$this->assertSame("\x01\x00\x00\x00\x00\x00\x00\x00\x03", $set->getBinaryBitsetBe());
400434
$this->assertTrue($set->has($enum3));
401435

402-
$set = $set->with($enum4);
436+
$set->add($enum4);
403437
$this->assertSame("\x01\x80\x00\x00\x00\x00\x00\x00\x03", $set->getBinaryBitsetBe());
404438
$this->assertTrue($set->has($enum4));
405439

406440
$this->assertSame(4, $set->count());
407441

408-
$set = $set->without($enum2);
442+
$set->remove($enum2);
409443
$this->assertSame("\x01\x80\x00\x00\x00\x00\x00\x00\x01", $set->getBinaryBitsetBe());
410444
$this->assertFalse($set->has($enum2));
411445

0 commit comments

Comments
 (0)