public void EndMemberAssignsInstanceToParentProperty() { var state = new StackingLinkedList<Level>(); var dummyClass = new DummyClass(); state.Push( new Level { Instance = dummyClass, XamlMember = WiringContext.GetMember(WiringContext.GetType(dummyClass.GetType()), "Child"), }); var childClass = new ChildClass(); state.Push( new Level { Instance = childClass, }); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.EndObject()); Assert.AreEqual(1, state.Count); var expectedInstance = state.CurrentValue.Instance; Assert.AreSame(expectedInstance, dummyClass); Assert.AreSame(((DummyClass)expectedInstance).Child, childClass); }
public void GivenConfigurationOfCollection_GetObjectConfiguresTheLevel() { var state = new StackingLinkedList<Level>(); var type = typeof(DummyClass); var xamlMember = WiringContext.GetMember(WiringContext.GetType(type), "Items"); state.Push( new Level { Instance = new DummyClass(), XamlMember = xamlMember, }); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.GetObject()); Assert.AreEqual(2, state.Count); Assert.IsTrue(state.CurrentValue.Collection != null); Assert.IsTrue(state.CurrentValue.IsGetObject); }
public NamespaceDeclarationCommand(SuperObjectAssembler assembler, NamespaceDeclaration namespaceDeclaration) : base(assembler) { this.namespaceDeclaration = namespaceDeclaration; }
public EndMemberCommand(SuperObjectAssembler assembler, ITopDownMemberValueContext topDownMemberValueContext) : base(assembler) { this.topDownMemberValueContext = topDownMemberValueContext; typeContext = Assembler.WiringContext.TypeContext; }
public GetObjectCommand(SuperObjectAssembler superObjectAssembler) : base(superObjectAssembler) { }
protected Command(SuperObjectAssembler assembler) { Assembler = assembler; }
public StartMemberCommand(SuperObjectAssembler assembler, XamlMemberBase member) : base(assembler) { this.member = member; }
public ValueCommand(SuperObjectAssembler superObjectAssembler, string value) : base(superObjectAssembler) { this.value = value; ValuePipeLine = new ValuePipeline(superObjectAssembler.WiringContext); }
public EndObjectCommand(SuperObjectAssembler assembler) : base(assembler) { }
public void GivenConfiguredInstance_StartMemberSetsTheMember() { var state = new StackingLinkedList<Level>(); var dummyClass = new DummyClass(); state.Push( new Level { Instance = dummyClass, }); var xamlMember = WiringContext.GetMember(WiringContext.GetType(dummyClass.GetType()), "Items"); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.StartMember<DummyClass>(d => d.Items)); Assert.AreEqual(1, state.Count); Assert.AreEqual(state.CurrentValue.XamlMember, xamlMember); }
public void StartObjectShouldSetTheXamlType() { var state = new StackingLinkedList<Level>(); state.Push(new Level()); var type = typeof(DummyClass); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.StartObject(type)); var actualType = sut.StateCommuter.XamlType; var expectedType = WiringContext.GetType(type); Assert.AreEqual(expectedType, actualType); }
public void GivenStateAfterGetObject_WritingObjectAssignsItToTheCollection() { var state = new StackingLinkedList<Level>(); var collection = new Collection<Item>(); state.Push( new Level { Collection = collection, IsGetObject = true, }); state.Push(new Level()); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.StartObject<Item>()); sut.Process(builder.EndObject()); Assert.AreEqual(1, collection.Count); }
public void GivenStateAfterGetObject_NeedsTwoEndObjectsToConsumeAllTheLevels() { var state = new StackingLinkedList<Level>(); var collection = new Collection<Item>(); state.Push( new Level { Collection = collection, IsGetObject = true, }); state.Push(new Level { XamlType = WiringContext.GetType(typeof(Item)) }); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.EndObject()); sut.Process(builder.EndObject()); Assert.AreEqual(0, state.Count); }
public void GivenCtorArguments_WritingEndObjectMakesResultTheProvidedValueOfTheMarkupExtension() { var state = new StackingLinkedList<Level>(); var xamlType = WiringContext.GetType(typeof(DummyClass)); state.Push( new Level { XamlType = xamlType, Instance = new DummyClass(), XamlMember = xamlType.GetMember("SampleProperty") }); var constructionArguments = new Collection<ConstructionArgument> { new ConstructionArgument("Value", "Value") }; state.Push( new Level { XamlType = WiringContext.GetType(typeof(DummyExtension)), CtorArguments = constructionArguments, }); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.EndObject()); Assert.AreEqual("Value", sut.Result); }
public void GivenConfiguredXamlType_StartMemberInstantiatesItSetsTheMember() { var state = new StackingLinkedList<Level>(); var type = typeof(DummyClass); state.Push( new Level { XamlType = WiringContext.GetType(type) }); var xamlMember = WiringContext.GetMember(WiringContext.GetType(type), "Items"); var sut = new SuperObjectAssembler(state, WiringContext, new TopDownMemberValueContext()); sut.Process(builder.StartMember<DummyClass>(d => d.Items)); Assert.AreEqual(1, state.Count); Assert.IsInstanceOfType(state.CurrentValue.Instance, type); Assert.AreEqual(state.CurrentValue.XamlMember, xamlMember); }
public StartObjectCommand(SuperObjectAssembler assembler, XamlType xamlType, object rootInstance) : base(assembler) { this.xamlType = xamlType; this.rootInstance = rootInstance; }