Example #1
0
		protected override void Check()
		{
			var m = new Model();
			m.AddRootComponent(new C2());

			Tests.RaisesWith<UnboundRequiredPortException>(() => m.Seal(),
				e => e.RequiredPort.ShouldBe(m.Metadata.RootComponent.Subcomponents[0].Subcomponents[1].RequiredPorts[0]));
		}
		protected override void Check()
		{
			var c = new C4();
			var m = new Model();
			m.AddRootComponent(c);
			m.Bind(c.RequiredPorts.M = c.ProvidedPorts.A);

			Tests.RaisesWith<AmbiguousBindingsException>(() => m.Seal(),
				e => e.RequiredPort.ShouldBe(m.Metadata.RootComponent.Subcomponents[0].RequiredPorts[0]));
		}
Example #3
0
		protected override void Check()
		{
			var c = new C1();
			var m = new Model();
			m.AddRootComponent(c);
			m.Seal();

			m.Metadata.RootComponent.Subcomponents.ShouldBe(new[] { c.Metadata });
			m.Metadata.Components.ShouldBe(new[] { m.Metadata.RootComponent, c.Metadata });
			m.Metadata.RootComponent.Subcomponents[0].Name.ShouldBe("c");

			m.Seal(); // Second call should have no effect

			m.Metadata.RootComponent.Subcomponents.ShouldBe(new[] { c.Metadata });
			m.Metadata.Components.ShouldBe(new[] { m.Metadata.RootComponent, c.Metadata });
		}
Example #4
0
		protected override void Check()
		{
			var c1 = new C2();
			var c2 = new C2();
			var c3 = new C3("name");
			var c4 = new C2();

			var m = new Model();
			m.AddRootComponent(c1);
			m.AddRootComponents(c2, c3);
			m.AddRootComponents(c4);
			m.AddRootComponents(); // should have no effect
			m.Seal();

			m.Metadata.RootComponent.Subcomponents.ShouldBe(new[] { c1.Metadata, c2.Metadata, c3.Metadata, c4.Metadata });
			m.Metadata.Components.ShouldBe(new[] { m.Metadata.RootComponent, c1.Metadata, c2.Metadata, c3.Metadata, c4.Metadata });

			m.Metadata.RootComponent.Subcomponents[0].Name.ShouldBe("c1");
			m.Metadata.RootComponent.Subcomponents[1].Name.ShouldBe("c2");
			m.Metadata.RootComponent.Subcomponents[2].Name.ShouldBe("name");
			m.Metadata.RootComponent.Subcomponents[3].Name.ShouldBe("c4");
		}
		private static void AddRootComponent(Model m, Component c)
		{
			m.AddRootComponent(c);
		}