Exemplo n.º 1
0
        public void ShouldBuildAbstractTypeAndGenerateGetterAndSetter()
        {
            AbstractMockObject actual = builder.BuildAssemblyFromType <AbstractMockObject>(typeof(AbstractMockObject), null);

            actual.FirstName = "firstname";
            Assert.AreEqual("firstname", actual.FirstName);
        }
        public void ShouldConstructAndOverrideAbstractMethods()
        {
            AbstractMockObject mock = ConstructDiscreteHelper <AbstractMockObject>();

            try
            {
                mock.FindEmployer("test");
            }
            catch (Exception) { }
        }
        public void ShouldBeAbleToCallAbstractProperties()
        {
            AbstractMockObject mock     = ConstructDiscreteHelper <AbstractMockObject>();
            PropertyInfo       property = mock.GetType().GetProperty("__MiddleName");

            property.GetSetMethod().Invoke(mock, new Object[1] {
                "middleName"
            });

            Assert.AreEqual("middleName", mock.GetMiddleName());
        }
        public void ShouldBeAbleToCallAbstractMethodsAndBeImplementedByAnAttribute()
        {
            AbstractMockObject mock      = ConstructDiscreteHelper <AbstractMockObject>();
            Decorator          decorator = new ObjectDecorator(new ObjectInstantiator());

            decorator.Decorate <AbstractMockObject>(mock);
            Assert.AreEqual("The Next Employer", mock.TestGetEmployer());
            Assert.AreEqual("MyName 1", mock.GetTitleAndPosition("MyName", 1));
            Assert.AreEqual((-3 - 5 - 7 - 2), mock.Subtract(3, 5, 7, 2));
            Assert.AreEqual((3 + 5 + 7 + 2), mock.Add(3, 5, 7, 2));
            Assert.AreEqual(0, mock.GetZero());
        }
        public void ShouldConstructWithDiscretPropertiesIfNeeded()
        {
            AbstractMockObject mock     = ConstructDiscreteHelper <AbstractMockObject>();
            PropertyInfo       property = mock.GetType().GetProperty("__LastName");

            mock.LastName = "sampleValue";
            Assert.AreEqual("sampleValue", property.GetGetMethod().Invoke(mock, null));

            property = mock.GetType().GetProperty("__MiddleName");
            property.GetSetMethod().Invoke(mock, new Object[1] {
                "middleName"
            });
            Assert.AreEqual("middleName", mock.MiddleName);

            property = mock.GetType().GetProperty("__FirstName");
            Assert.IsNull(property);
        }