예제 #1
0
        public void DeserializeAllSetupDataWithPropertyBuilderAndEmptyBuildParameters()
        {
            // <NStub.CSharp.ObjectGeneration.Builders.DefaultMethodEraser><EmptyBuildParameters>
            var    expectedBuilderType   = typeof(PropertyBuilder);
            var    expectedParameterType = typeof(EmptyBuildParameters);
            var    expectedEnabled       = true;
            string buildParametersXmlId  = "BuildParameters";
            var    xml = TestDataProvider.BuildParametersMinimal(buildParametersXmlId, expectedBuilderType, expectedParameterType, expectedEnabled);

            Expect.Call(handler.Type).Return(expectedBuilderType).Repeat.Any();
            Expect.Call(handler.IsMultiBuilder).Return(false).Repeat.Any();
            //Expect.Call(handler.ParameterDataType).Return(typeof(string)).Repeat.Any();
            Expect.Call(handler.ParameterDataType).Return(expectedParameterType).Repeat.Any();
            mocks.ReplayAll();
            var result   = testObject.DeserializeAllSetupData(xml, properties, new[] { handler });
            var expected = new EmptyBuildParameters();

            expected.Enabled = expectedEnabled;
            //Assert.AreElementsEqual(new[] { expected }, result,
            //  (x, y) => x.Enabled == y.Enabled && x.GetType() == y.GetType());
            Assert.AreElementsEqual(new[] { expected }, result);

            Assert.AreEqual(1, properties.EntryCount);

            // ensure there is a global entry for the PropertyBuilder containing an EmptyBuildParameters instance.
            Assert.Contains(properties.General, new KeyValuePair <string, IBuilderData>(expectedBuilderType.FullName, expected));

            mocks.VerifyAll();
        }