public void Import_VirtualPropertyOverrideWithSameContract_ShouldSucceed() { var container = ContainerFactory.Create(); container.AddAndComposeExportedValue <int>("VirtualImport", 21); var import = new ImportOnOverridenPropertyWithSameContract(); container.SatisfyImportsOnce(import); // Import will get set twice because there are 2 imports on the same property. // We would really like to either elminate it getting set twice or error in this case // but we figure it is a rare enough corner case that it doesn't warrented the run time cost // and can be covered by an FxCop rule. Assert.AreEqual(2, import.ImportSetCount); Assert.AreEqual(21, import.VirtualImport); }
public void Import_VirtualPropertyOverrideWithDifferentContract_ShouldSucceed() { var container = ContainerFactory.Create(); container.AddAndComposeExportedValue<int>("VirtualImport", 21); container.AddAndComposeExportedValue<int>("OverriddenImport", 42); var import = new ImportOnOverridenPropertyWithSameContract(); container.SatisfyImportsOnce(import); // Import will get set twice because there are 2 imports on the same property. // We would really like to either elminate it getting set twice or error in this case // but we figure it is a rare enough corner case that it doesn't warrented the run time cost // and can be covered by an FxCop rule. Assert.AreEqual(2, import.ImportSetCount); // The derived most import should be discovered first and so it will get set first // and thus the value should be the base import which is 21. Assert.AreEqual(21, import.VirtualImport); }