public void IfNull_WithTarget_DoNotCallFuncTR_ReturnOtherTypeNull()
        {
            var target = new MockClass1();

            MockClass2 rtn = target.IfNull(() => new MockClass2());

            Assert.IsNull(rtn);
        }
        public void IfNotNull_WithTarget_CallFuncTTR_ReturnOtherType()
        {
            var target = new MockClass1();

            MockClass2 otherRtn = target.IfNotNull(x => new MockClass2());

            Assert.IsNotNull(otherRtn);
        }
        public void IfNull_WithNullTarget_CallFuncTR_ReturnOtherType()
        {
            var target = default(MockClass1);

            MockClass2 rtn = target.IfNull(() => new MockClass2());

            Assert.IsNotNull(rtn);
        }
示例#4
0
        public void ShouldBuildAbstractTypeThenGetDecoratedWith1Arg()
        {
            MockClass2 actual    = builder.BuildAssemblyFromType <MockClass2>(typeof(MockClass2), null);
            Decorator  decorator = new ObjectDecorator(new ObjectInstantiator());

            decorator.Decorate <MockClass2>(actual);
            Assert.AreEqual("string", actual.OtherMagic("string"));
        }
        public void IfNotNull_WithTarget_CallFuncTR_ReturnOtherType()
        {
            var target = new MockClass1();

            // Do not call Func<TR>(), return default(TR)
            MockClass2 otherRtn = target.IfNotNull(() => new MockClass2());

            Assert.IsNotNull(otherRtn);
        }
        public void IfNotNull_WithNullTarget_DoNotCallFuncTTR_ReturnOtherTypeNull()
        {
            var target = default(MockClass1);

            // Do not call Func<T,TR>(), return default(TR)
            MockClass2 otherRtn = target.IfNotNull(x => new MockClass2());

            Assert.IsNull(otherRtn);
        }
        public void IfNull_WithNullTarget_CallAction_ReturnSameType()
        {
            var target      = default(MockClass1);
            var targetOther = new MockClass2();

            var rtn = target.IfNull(() => targetOther.OtherMethodReturnVoid());

            Assert.AreSame(rtn, target);
            Assert.IsTrue(targetOther.SomeMethodCalled);
        }
示例#8
0
    public void ResolveWithInterface()
    {
        container.Register <IMockClass1, MockClass1>();
        container.Register <IMockClass2, MockClass2>();
        container.Register <IMockClass3, MockClass3>();

        MockClass1 mock1 = container.Resolve <IMockClass1>() as MockClass1;
        MockClass2 mock2 = container.Resolve <IMockClass2>() as MockClass2;
        MockClass3 mock3 = container.Resolve <IMockClass3>() as MockClass3;

        // Check that contructors have only been called once.
        Assert.AreEqual(1, MockClass1.constructorCalls);
        Assert.AreEqual(1, MockClass2.constructorCalls);
        Assert.AreEqual(1, MockClass3.constructorCalls);

        // Check that references in obejcts has been set with the correct references.
        Assert.IsNotNull(mock1.mock2);
        Assert.IsNotNull(mock1.mock3);
        Assert.IsNotNull(mock2.mock3);
        Assert.AreSame(mock1.mock2, mock2);
        Assert.AreSame(mock1.mock3, mock3);
        Assert.AreSame(mock1.mock3, mock2.mock3);
    }