Skip to content

Commit

Permalink
tests: Test empty FieldArray with content after
Browse files Browse the repository at this point in the history
  • Loading branch information
mikewadsten authored and posborne committed Nov 20, 2015
1 parent 2ee6fba commit 132ac48
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions suitcase/test/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -1036,6 +1036,13 @@ class BasicMessageArray(Structure):
array = FieldArray(BasicMessage, count)


# Test empty FieldArray with content after the array
class BasicMessageArrayAfter(Structure):
count = LengthField(UBInt8(), multiplier=2)
array = FieldArray(BasicMessage, count)
after = UBInt8()


class TestFieldArray(unittest.TestCase):
def test_pack_valid(self):
m = BasicMessageArray()
Expand Down Expand Up @@ -1071,6 +1078,40 @@ def test_unpack_empty(self):
self.assertEqual(m.count, 0)
self.assertEqual(len(m.array), 0)

def test_pack_after_valid(self):
m = BasicMessageArrayAfter()

m.array = []
m.after = 1

self.assertEqual(m.pack(), b"\x00\x01")

# Populate the array.
m2 = BasicMessageArrayAfter()
first = BasicMessage()
first.b1 = 0x22
first.b2 = 0x33
m2.array = [first]
m2.after = 0

self.assertEquals(m2.pack(), b"\x01\x22\x33\x00")

def test_unpack_after_valid(self):
m = BasicMessageArrayAfter.from_data(b"\x00\x11")

self.assertEqual(m.count, 0)
self.assertEqual(len(m.array), 0)
self.assertEqual(m.after, 0x11)

m2 = BasicMessageArrayAfter.from_data(b"\x01\x11\x22\x00")

self.assertEqual(m2.count, 1)
self.assertEqual(len(m2.array), 1)
self.assertIsInstance(m2.array[0], BasicMessage)
self.assertEqual(m2.array[0].b1, 0x11)
self.assertEqual(m2.array[0].b2, 0x22)
self.assertEqual(m2.after, 0)


# Test SubstructureField
class PascalString16(Structure):
Expand Down

0 comments on commit 132ac48

Please sign in to comment.