def testItShouldBuildPrimitiveArrayFromArgument(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.PRIMITIVE

        for i in range(0, 3):
            element = argument.array.element.add(
                type=Message.Argument.PRIMITIVE)
            element.primitive.type = Message.Primitive.BOOL
            element.primitive.bool = True

        type = reflection.types.ReflectedType.fromArgument(
            argument, reflector=self.reflector)

        assert isinstance(type, reflection.types.ReflectedArray)
        assert len(type.native()) == 3

        for i in range(0, 3):
            assert isinstance(type.native()[i],
                              reflection.types.ReflectedPrimitive)
            assert type.native()[i].type() == "boolean"
    def testItShouldRaiseTypeErrorIfArrayIsMixedTypes(self):
        argument = Message.Argument(type=Message.Argument.ARRAY)
        argument.array.type = Message.Array.PRIMITIVE

        for i in range(0, 3):
            element = argument.array.element.add(
                type=Message.Argument.PRIMITIVE)
            element.primitive.type = Message.Primitive.BOOL
            element.primitive.bool = True
        for i in range(0, 3):
            element = argument.array.element.add(type=Message.Argument.OBJECT)
            element.object.reference = i

        try:
            type = reflection.types.ReflectedType.fromArgument(
                argument, reflector=self.reflector)

            assert False, "should have caused a TypeError building a mixed array"
        except TypeError as e:
            assert str(e) == "mismatched array element types"
示例#3
0
 def _pb(self):
     """
     Get an Argument representation of the null, as defined in the drozer
     protocol.
     """
     return Message.Argument(type=Message.Argument.NULL)