def testProcessDoesNotCopyTags(self):

        container = ContainerBuilder()

        container\
            .register('parent')\
            .addTag('foo')\


        container\
            .setDefinition('child', DefinitionDecorator('parent'))\

        self._process(container)

        defi = container.getDefinition('child')
        self.assertEqual({}, defi.getTags())
    def testProcessDoesNotCopyScope(self):

        container = ContainerBuilder()

        container\
            .register('parent')\
            .setScope('foo')\


        container\
            .setDefinition('child', DefinitionDecorator('parent'))\

        self._process(container)

        defi = container.getDefinition('child')
        self.assertEqual(ContainerInterface.SCOPE_CONTAINER, defi.getScope())
    def testProcessDoesNotCopyAbstract(self):

        container = ContainerBuilder()

        container\
            .register('parent')\
            .setAbstract(True)\


        container\
            .setDefinition('child', DefinitionDecorator('parent'))\

        self._process(container)

        defi = container.getDefinition('child')
        self.assertFalse(defi.isAbstract())
    def testProcessDoesNotCopyTags(self):

        container = ContainerBuilder();

        container\
            .register('parent')\
            .addTag('foo')\
        ;

        container\
            .setDefinition('child', DefinitionDecorator('parent'))\
        ;

        self._process(container);

        defi = container.getDefinition('child');
        self.assertEqual({}, defi.getTags());
    def testProcessDoesNotCopyScope(self):

        container = ContainerBuilder();

        container\
            .register('parent')\
            .setScope('foo')\
        ;

        container\
            .setDefinition('child', DefinitionDecorator('parent'))\
        ;

        self._process(container);

        defi = container.getDefinition('child');
        self.assertEqual(ContainerInterface.SCOPE_CONTAINER, defi.getScope());
    def testProcessDoesNotCopyAbstract(self):

        container = ContainerBuilder();

        container\
            .register('parent')\
            .setAbstract(True)\
        ;

        container\
            .setDefinition('child', DefinitionDecorator('parent'))\
        ;

        self._process(container);

        defi = container.getDefinition('child');
        self.assertFalse(defi.isAbstract());
    def testProcess(self):

        container = ContainerBuilder();
        container.register('parent', 'foo').setArguments(['moo', 'b']).setProperty('foo', 'moo');
        container.setDefinition('child', DefinitionDecorator('parent'))\
            .replaceArgument(0, 'a')\
            .setProperty('foo', 'bar')\
            .setClass('bar')\
        ;

        self._process(container);

        definition = container.getDefinition('child');
        self.assertFalse(isinstance(object, DefinitionDecorator));
        self.assertEqual('bar', definition.getClass());
        self.assertEqual(['a', 'b'], definition.getArguments());
        self.assertEqual({'foo': 'bar'}, definition.getProperties());
    def testProcess(self):

        container = ContainerBuilder()
        container.register('parent',
                           'foo').setArguments(['moo', 'b'
                                                ]).setProperty('foo', 'moo')
        container.setDefinition('child', DefinitionDecorator('parent'))\
            .replaceArgument(0, 'a')\
            .setProperty('foo', 'bar')\
            .setClass('bar')\

        self._process(container)

        definition = container.getDefinition('child')
        self.assertFalse(isinstance(object, DefinitionDecorator))
        self.assertEqual('bar', definition.getClass())
        self.assertEqual(['a', 'b'], definition.getArguments())
        self.assertEqual({'foo': 'bar'}, definition.getProperties())
    def testProcessAppendsMethodCallsAlways(self):

        container = ContainerBuilder()

        container\
            .register('parent')\
            .addMethodCall('foo', ['bar'])\


        container\
            .setDefinition('child', DefinitionDecorator('parent'))\
            .addMethodCall('bar', ['foo'])\

        self._process(container)

        definition = container.getDefinition('child')
        self.assertEqual([
            ['foo', ['bar']],
            ['bar', ['foo']],
        ], definition.getMethodCalls())
示例#10
0
    def testProcessAppendsMethodCallsAlways(self):

        container = ContainerBuilder();

        container\
            .register('parent')\
            .addMethodCall('foo', ['bar'])\
        ;

        container\
            .setDefinition('child', DefinitionDecorator('parent'))\
            .addMethodCall('bar', ['foo'])\
        ;

        self._process(container);

        definition = container.getDefinition('child');
        self.assertEqual([
            ['foo', ['bar']],
            ['bar', ['foo']],
            ], definition.getMethodCalls()
        );
    def testProcessHandlesMultipleInheritance(self):

        container = ContainerBuilder()

        container\
            .register('parent', 'foo')\
            .setArguments(['foo', 'bar', 'c'])\


        container\
            .setDefinition('child2', DefinitionDecorator('child1'))\
            .replaceArgument(1, 'b')\


        container\
            .setDefinition('child1', DefinitionDecorator('parent'))\
            .replaceArgument(0, 'a')\

        self._process(container)

        defi = container.getDefinition('child2')
        self.assertEqual(['a', 'b', 'c'], defi.getArguments())
        self.assertEqual('foo', defi.getClass())
示例#12
0
    def testProcessHandlesMultipleInheritance(self):

        container = ContainerBuilder();

        container\
            .register('parent', 'foo')\
            .setArguments(['foo', 'bar', 'c'])\
        ;

        container\
            .setDefinition('child2', DefinitionDecorator('child1'))\
            .replaceArgument(1, 'b')\
        ;

        container\
            .setDefinition('child1', DefinitionDecorator('parent'))\
            .replaceArgument(0, 'a')\
        ;

        self._process(container);

        defi = container.getDefinition('child2');
        self.assertEqual(['a', 'b', 'c'], defi.getArguments());
        self.assertEqual('foo', defi.getClass());