public void Match_AssertSeveralFields_SuccessfulMatch() { // arrange TestChild testChild = TestDataBuilder.TestChildJames().Build(); TestPerson testPerson = TestDataBuilder.TestPersonMarkWalton() .AddChild(testChild) .Build(); testPerson.Id = Guid.NewGuid(); testPerson.CreationDate = DateTime.UtcNow; testPerson.Address.StreetNumber = -58; testPerson.Address.Country = null; testPerson.Relatives[0].Address.Plz = null; // act & assert Snapshot.Match <TestPerson>(testPerson, matchOption => matchOption .Assert(fieldOption => Assert.NotEqual(Guid.Empty, fieldOption.Field <Guid>("Id"))) .Assert(fieldOption => Assert.NotEqual(DateTime.UtcNow.AddSeconds(5), fieldOption.Field <DateTime>("CreationDate"))) .Assert(fieldOption => Assert.Equal(-58, fieldOption.Field <int>("Address.StreetNumber"))) .Assert(fieldOption => testChild.Should().BeEquivalentTo(fieldOption.Field <TestChild>("Children[3]"))) .Assert(fieldOption => Assert.Null(fieldOption.Field <TestCountry>("Address.Country"))) .Assert(fieldOption => Assert.Null(fieldOption.Field <TestCountry>("Relatives[0].Address.Plz")))); }
public void Match_LargeOverallTest_SuccessfulMatch() { // arrange string snapshotName = nameof(SnapshotTests) + "." + nameof(Match_LargeOverallTest_SuccessfulMatch); TestChild testChild = TestDataBuilder.TestChildJames().Build(); TestPerson testPerson = TestDataBuilder.TestPersonMarkWalton() .AddChild(testChild) .Build(); testPerson.Id = Guid.NewGuid(); testPerson.CreationDate = DateTime.UtcNow; testPerson.Address.StreetNumber = -58; testPerson.Address.Country = null; testPerson.Relatives[0].Address.Plz = null; // act & assert Snapshot.Match(testPerson, snapshotName, matchOption => matchOption .Assert(option => Assert.NotEqual(Guid.Empty, option.Field <Guid>("Id"))) .IgnoreField <DateTime>("CreationDate") .Assert(option => Assert.Equal(-58, option.Field <int>("Address.StreetNumber"))) .Assert(option => testChild.Should().BeEquivalentTo(option.Field <TestChild>("Children[3]"))) .IgnoreField <TestCountry>("Address.Country") .Assert(option => Assert.Null(option.Field <TestCountry>("Relatives[0].Address.Plz")))); }
public void TestInherit() { Serializer ser = new Regulus.Serialization.Dynamic.Serializer(); TestGrandson test = new TestGrandson(); test.Data = 100; TestChild testChild = test as TestChild; testChild.Data = 1; TestParent testParent = test as TestParent; testParent.Data = 33; byte[] buf = ser.ObjectToBuffer(test); TestGrandson val = (TestGrandson)ser.BufferToObject(buf); TestParent valParent = val as TestParent; TestChild child = val as TestChild; Assert.AreEqual(100, val.Data); Assert.AreEqual(1, child.Data); Assert.AreEqual(33, valParent.Data); }
public void TestLifetimeChangeOnCallback() { AddStep("Add children", () => { TestChild a; container.AddInternal(a = new TestChild(0, 1)); container.OnCrossing += e => { var kind = e.Kind; var direction = e.Direction; if (kind == LifetimeBoundaryKind.End && direction == LifetimeBoundaryCrossingDirection.Forward) { a.LifetimeEnd = 2; } else if (kind == LifetimeBoundaryKind.Start && direction == LifetimeBoundaryCrossingDirection.Backward) { a.LifetimeEnd = 1; } else if (kind == LifetimeBoundaryKind.Start && direction == LifetimeBoundaryCrossingDirection.Forward) { a.LifetimeStart = a.LifetimeStart == 0 ? 1 : 0; } }; }); skipTo(1); validate(1); skipTo(-1); validate(0); skipTo(0); validate(0); skipTo(1); validate(1); }
public void SimpleWrapperTest() { TestHusband husband = new TestHusband(); TestChild child1 = new TestChild { Id = 1, Husband = husband }; //TestChild child2 = new TestChild { Id = 2, Husband = husband }; husband.Children.Add(child1); //husband.Children.Add(child2); TestHusbandWrapper husbandWrapper = new TestHusbandWrapper(husband); TestChildWrapper childWrapper1 = husbandWrapper.Children.First(x => Equals(x.Model, child1)); Assert.IsFalse(husbandWrapper.IsChanged); string oldChildsName = childWrapper1.Name; childWrapper1.Name = oldChildsName + "NewName"; Assert.IsTrue(husbandWrapper.IsChanged); childWrapper1.Name = oldChildsName; Assert.IsFalse(husbandWrapper.IsChanged); husbandWrapper.Children.Remove(childWrapper1); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Children.Add(childWrapper1); Assert.IsFalse(husbandWrapper.IsChanged); }
public void Match_IgnoreScalarNullStringField_SuccessfulIgnored() { // arrange TestChild testChild = TestDataBuilder.TestChildNull() .Build(); // act & assert Snapshot.Match <TestChild>( testChild, matchOptions => matchOptions.IgnoreField <string>("Name")); }
public void Match_ObjectsArraySnapshot_SuccessfulMatch() { // arrange TestPerson markWalton = TestDataBuilder.TestPersonMarkWalton().Build(); TestPerson sandraSchneider = TestDataBuilder.TestPersonSandraSchneider().Build(); TestChild hanna = TestDataBuilder.TestChildHanna().Build(); // act & assert Snapshot.Match(new object[] { markWalton, sandraSchneider, hanna }); }
public void TestAddLoadedDrawable() { TestChild child = null; AddStep("add child", () => container.AddInternal(child = new TestChild(0, 2))); skipTo(1); AddStep("remove child", () => container.RemoveInternal(child)); AddStep("add same child", () => container.AddInternal(child)); validate(1); }
// Use this for initialization void Start() { TestChild test = new TestChild(); test.Kansu(); Debug.Log(test.sum(5, 6)); TestChild test2 = new TestChild(); test2.number = 20; test2.Kansu(); }
public void ComplexWrapperAcceptAndReject() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); TestChild child1 = new TestChild { Husband = husband, Wife = wife1 }; TestChild child2 = new TestChild { Husband = husband, Wife = wife1 }; wife1.Husband = husband; husband.Wife = wife1; husband.Children.Add(child1); husband.Children.Add(child2); TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); Assert.IsFalse(husbandWrapper.IsChanged); TestChildWrapper childWrapper1 = husbandWrapper.Children.First(x => Equals(x.Model, child1)); string oldChildsName = childWrapper1.Name; childWrapper1.Name = oldChildsName + "NEW"; husbandWrapper.RejectChanges(); Assert.AreEqual(childWrapper1.Name, oldChildsName); childWrapper1.Name = oldChildsName + "NEW"; husbandWrapper.AcceptChanges(); Assert.AreEqual(childWrapper1.Name, oldChildsName + "NEW"); Assert.AreEqual(childWrapper1.NameOriginalValue, oldChildsName + "NEW"); TestWifeWrapper wifeWrapper = husbandWrapper.Wife; husbandWrapper.Wife = null; Assert.AreEqual(husbandWrapper.Wife, null); husbandWrapper.RejectChanges(); Assert.AreEqual(husbandWrapper.Wife, wifeWrapper); TestWifeWrapper wifeWrapper2 = testWrappersFactory.GetWrapper <TestWifeWrapper>(new TestWife()); husbandWrapper.Wife = wifeWrapper2; husbandWrapper.AcceptChanges(); Assert.AreEqual(wifeWrapper2.Model, husbandWrapper.Model.Wife); husbandWrapper.Children.Remove(childWrapper1); husbandWrapper.RejectChanges(); Assert.IsTrue(husbandWrapper.Children.Contains(childWrapper1)); Assert.IsFalse(husbandWrapper.IsChanged); }
public void Test_TojsonFull() { var tp = new TestChild(); tp.num = 5; tp.childNum = 10; var json = JsonConverter.ToJson_full(tp); var data = JsonConverter.FromJson_full <TestChild>(json); Assert.AreEqual(5, data.num); Assert.AreEqual(10, (data as TestChild).childNum); }
public void TestResolveInheritedDependency() { var container = new GeckoContainer(); var test = new Test(); container.RegisterInstance(test); var testChild = new TestChild(); container.BuildUp(testChild); Assert.AreEqual(test, testChild.TestDep); }
public void Match_IgnoreScalarNullStringField_SuccessfulIgnored() { // arrange string snapshotName = nameof(SnapshotTests) + "." + nameof(Match_IgnoreScalarNullStringField_SuccessfulIgnored); TestChild testChild = TestDataBuilder.TestChildNull() .Build(); // act & assert Snapshot.Match(testChild, snapshotName, matchOptions => matchOptions.IgnoreField <string>("Name")); }
public void Match_ObjectsArraySnapshot_SuccessfulMatch() { // arrange string snapshotName = nameof(SnapshotTests) + "." + nameof(Match_ObjectsArraySnapshot_SuccessfulMatch); TestPerson markWalton = TestDataBuilder.TestPersonMarkWalton().Build(); TestPerson sandraSchneider = TestDataBuilder.TestPersonSandraSchneider().Build(); TestChild hanna = TestDataBuilder.TestChildHanna().Build(); // act & assert Snapshot.Match(new object[] { markWalton, sandraSchneider, hanna }, snapshotName); }
public void ListTest1() { var list = new ChildrenCollection <TestChild, ChildrenCollectionTests>(this); var item1 = new TestChild(); Assert.IsNull(item1.LogicalParent); list.Add(item1); Assert.AreSame(item1.LogicalParent, this); list.Remove(item1); Assert.IsNull(item1.LogicalParent); }
public void TestStorageList() { _ = new DC(null); var parent = new TestParent("Parent", isStoring: false); var storageList = new StorageList <TestChild>(); assert(storageList, "", ""); var child0 = new TestChild("Child0", parent, isStoring: false); storageList.Add(child0); assert(storageList, @"", @"Key: noKey, Text: Child0, Parent: noKey, Parent;"); var child1 = new TestChild("Child1", parent, isStoring: false); storageList.Add(child1); assert(storageList, @"", @"Key: noKey, Text: Child0, Parent: noKey, Parent; Key: noKey, Text: Child1, Parent: noKey, Parent;"); parent.Store(); assert(storageList, @"", @"Key: noKey, Text: Child0, Parent: 0, Parent; Key: noKey, Text: Child1, Parent: 0, Parent;"); child0.Store(); assert(storageList, @"Key: 0, Text: Child0, Parent: 0, Parent;", @"Key: 0, Text: Child0, Parent: 0, Parent; Key: noKey, Text: Child1, Parent: 0, Parent;"); child1.Store(); assert(storageList, @"Key: 0, Text: Child0, Parent: 0, Parent; Key: 1, Text: Child1, Parent: 0, Parent;", @"Key: 0, Text: Child0, Parent: 0, Parent; Key: 1, Text: Child1, Parent: 0, Parent;"); child0.Release(); assert(storageList, @"Key: 1, Text: Child1, Parent: 0, Parent;", @"Key: noKey, Text: Child0, Parent: 0, Parent; Key: 1, Text: Child1, Parent: 0, Parent;"); }
public override void Load(Call call, TabModel model) { var items = new ItemCollection <TestChild>(); for (int i = 0; i < 2; i++) { var item = new TestChild() { }; items.Add(item); } model.Items = items; }
public void TestChildCollectionList1() { if (System.Diagnostics.Debugger.IsAttached) { return; } var list = new ChildrenCollection <TestChild, ChildrenCollectionTests>(this); Assert.Throws <ArgumentNullException>(() => list.Add(null)); var item1 = new TestChild(); Assert.IsNull(item1.LogicalParent); Assert.AreEqual(-1, item1.LogicalIndex); var item2 = new TestChild(); Assert.IsNull(item2.LogicalParent); Assert.AreEqual(-1, item2.LogicalIndex); list.Add(item1); Assert.AreSame(this, item1.LogicalParent); Assert.AreEqual(0, item1.LogicalIndex); Assert.Throws <ArgumentException>(() => list.Add(item1)); list.Remove(item1); Assert.IsNull(item1.LogicalParent); Assert.AreEqual(-1, item1.LogicalIndex); list.Add(item1); Assert.AreSame(this, item1.LogicalParent); Assert.AreEqual(0, item1.LogicalIndex); list.Insert(0, item2); Assert.AreSame(this, item2.LogicalParent); Assert.AreEqual(0, item2.LogicalIndex); Assert.AreSame(this, item1.LogicalParent); Assert.AreEqual(1, item1.LogicalIndex); list.RemoveAt(0); Assert.IsNull(item2.LogicalParent); Assert.AreEqual(-1, item2.LogicalIndex); Assert.AreSame(this, item1.LogicalParent); Assert.AreEqual(0, item1.LogicalIndex); }
public void TestDCRestore() { var directoryInfo = new DirectoryInfo("TestCsv"); var csvConfig = new CsvConfig(directoryInfo.FullName, reportException: reportException); directoryInfo.Refresh(); if (directoryInfo.Exists) { directoryInfo.Delete(recursive: true); directoryInfo.Refresh(); } directoryInfo.Create(); directoryInfo.Refresh(); try { var dc = new DC(csvConfig); var testParent0 = new TestParent("TestParent0"); var testParent1 = new TestParent("TestParent1"); var testParent2 = new TestParent("TestParent2"); var testChild0 = new TestChild("TestChild0", testParent0); var testChild1 = new TestChild("TestChild1", testParent2); var testChild2 = new TestChild("TestChild2", testParent0); testChild1.Release(); testParent2.Release(); testChild2.Update("TestChild2 updated", testParent1); var expectedTestParent0 = testParent0.ToString(); var expectedTestParent1 = testParent1.ToString(); var expectedTestChild0 = testChild0.ToString(); var expectedTestChild2 = testChild2.ToString(); dc.Dispose(); File.Delete(directoryInfo.FullName + @"\TestParent.csv"); File.Move(directoryInfo.FullName + @"\TestParent.bak", directoryInfo.FullName + @"\TestParent.csv"); File.Delete(directoryInfo.FullName + @"\TestChild.csv"); File.Move(directoryInfo.FullName + @"\TestChild.bak", directoryInfo.FullName + @"\TestChild.csv"); dc = new DC(csvConfig); Assert.AreEqual(expectedTestParent0, dc.TestParents[0].ToString()); Assert.AreEqual(expectedTestParent1, dc.TestParents[1].ToString()); Assert.AreEqual(expectedTestChild0, dc.TestChildren[0].ToString()); Assert.AreEqual(expectedTestChild2, dc.TestChildren[2].ToString()); } finally { DC.Data?.Dispose(); } }
public void TestChildCollectionList1() { var list = new ChildrenCollection <TestChild, ChildrenCollectionTests>(this); Assert.Throws <ArgumentNullException>(() => list.Add(null)); var item = new TestChild(); Assert.IsNull(item.LogicalParent); list.Add(item); Assert.AreSame(item.LogicalParent, this); Assert.Throws <ArgumentException>(() => list.Add(item)); list.Remove(item); Assert.IsNull(item.LogicalParent); }
public void ComplexWrapperTest() { TestHusband husband = new TestHusband(); TestWife wife = new TestWife(); TestChild child1 = new TestChild { Husband = husband, Wife = wife }; TestChild child2 = new TestChild { Husband = husband, Wife = wife }; wife.Husband = husband; husband.Wife = wife; husband.Children.AddRange(new[] { child1, child2 }); TestHusbandWrapper husbandWrapper = new TestHusbandWrapper(husband); Assert.IsFalse(husbandWrapper.IsChanged); string oldWifesName = husbandWrapper.Wife.Name; husbandWrapper.Wife.Name = oldWifesName + "New"; Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Wife.Name = oldWifesName; Assert.IsFalse(husbandWrapper.IsChanged); TestChildWrapper childWrapper1 = husbandWrapper.Children.Single(x => Equals(x.Model, child1)); string oldChildsName = childWrapper1.Name; childWrapper1.Name = oldChildsName + "NEW"; Assert.AreEqual(childWrapper1.NameOriginalValue, oldChildsName); Assert.IsTrue(husbandWrapper.IsChanged); childWrapper1.Name = oldChildsName; Assert.IsFalse(husbandWrapper.IsChanged); husbandWrapper.Children.Remove(childWrapper1); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Children.Add(childWrapper1); Assert.IsFalse(husbandWrapper.IsChanged); }
public void TestDynamicChange() { TestChild a = null, b = null, c = null, d = null; AddStep("Add children", () => { container.AddInternal(a = new TestChild(-1, 0)); container.AddInternal(b = new TestChild(0, 1)); container.AddInternal(c = new TestChild(0, 1)); container.AddInternal(d = new TestChild(1, 2)); }); validate(2); AddStep("Change lifetime", () => { a.LifetimeEnd = 1; b.LifetimeStart = 1; c.LifetimeEnd = 0; d.LifetimeStart = 0; }); validate(2); AddStep("Change lifetime", () => { foreach (var x in new[] { a, b, c, d }) { x.LifetimeStart += 1; x.LifetimeEnd += 1; } }); validate(1); AddStep("Change lifetime", () => { foreach (var x in new[] { a, b, c, d }) { x.LifetimeStart -= 1; x.LifetimeEnd -= 1; } }); validate(2); }
public void TestArray1() { TestGrandson test = new TestGrandson(); test.Data = 100; TestChild testChild = test as TestChild; testChild.Data = 1; TestParent testParent = test as TestParent; testParent.Data = 33; Serializer serializer = new Regulus.Serialization.Dynamic.Serializer(new CustomFinder((name) => Type.GetType(name))); byte[] buf = serializer.ObjectToBuffer(new TestParent[] { test, testChild, testParent }); TestParent[] val = (TestParent[])serializer.BufferToObject(buf); Assert.AreEqual(100, (val[0] as TestGrandson).Data); Assert.AreEqual(1, (val[1] as TestChild).Data); Assert.AreEqual(33, (val[2] as TestParent).Data); }
public void TestCallingParentsMethod() { var c = new TestChild(); Assert.AreEqual("child", c.Test()); var m = typeof(TestChild).GetMethod("Test").GetBaseDefinition(); Assert.AreEqual(typeof(TestBase), m.DeclaringType); Assert.AreEqual(typeof(TestBase).GetMethod("Test"), m); Assert.AreEqual("child", m.Invoke(c, new object[0])); Assert.AreEqual("child", ((TestBase)c).Test()); var dm = new DynamicMethod( "", typeof(string), new Type[] { typeof(TestBase) }, typeof(YamlNodeTest)); ILGenerator ilgen = dm.GetILGenerator(); ilgen.Emit(OpCodes.Ldarg_0); ilgen.Emit(OpCodes.Call, typeof(TestBase).GetMethod("Test")); ilgen.Emit(OpCodes.Ret); var callTest = (Call)dm.CreateDelegate(typeof(Call)); Assert.AreEqual("base", callTest.Invoke(c)); }
public void TestChildCollectionList1() { if (System.Diagnostics.Debugger.IsAttached) { return; } var list = new ChildrenCollection <TestChild, ChildrenCollectionTests>(this); Assert.Throws <ArgumentNullException>(() => list.Add(null)); var item = new TestChild(); Assert.IsNull(item.LogicalParent); list.Add(item); Assert.AreSame(item.LogicalParent, this); Assert.Throws <ArgumentException>(() => list.Add(item)); list.Remove(item); Assert.IsNull(item.LogicalParent); }
public void ComplexWrapperTest() { TestHusband husband = new TestHusband(); TestWife wife = new TestWife(); TestChild child1 = new TestChild { Id = 1, Husband = husband, Wife = wife }; TestChild child2 = new TestChild { Id = 2, Husband = husband, Wife = wife }; wife.Husband = husband; husband.Wife = wife; husband.Children.Add(child1); husband.Children.Add(child2); TestHusbandWrapper husbandWrapper = new TestHusbandWrapper(husband); Assert.IsFalse(husbandWrapper.IsChanged); TestChildWrapper childWrapper1 = husbandWrapper.Children.First(x => Equals(x.Model, child1)); string oldChildsName = childWrapper1.Name; childWrapper1.Name = oldChildsName + "NEW"; Assert.IsTrue(husbandWrapper.IsChanged); childWrapper1.Name = oldChildsName; Assert.IsFalse(husbandWrapper.IsChanged); husbandWrapper.Children.Remove(childWrapper1); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Children.Add(childWrapper1); Assert.IsFalse(husbandWrapper.IsChanged); }
public void TestBoundaryCrossing() { TestChild a = null, b = null, c = null; AddStep("Add children", () => { container.AddInternal(a = new TestChild(-1, 0)); container.AddInternal(b = new TestChild(0, 1)); container.AddInternal(c = new TestChild(1, 2)); }); skipTo(2); AddStep("Check crossings", () => { a.CheckCrossings(); b.CheckCrossings(new LifetimeBoundaryCrossedEvent(b, LifetimeBoundaryKind.End, LifetimeBoundaryCrossingDirection.Forward)); c.CheckCrossings( new LifetimeBoundaryCrossedEvent(c, LifetimeBoundaryKind.Start, LifetimeBoundaryCrossingDirection.Forward), new LifetimeBoundaryCrossedEvent(c, LifetimeBoundaryKind.End, LifetimeBoundaryCrossingDirection.Forward)); }); skipTo(1); AddStep("Check crossings", () => { a.CheckCrossings(); b.CheckCrossings(); c.CheckCrossings(new LifetimeBoundaryCrossedEvent(c, LifetimeBoundaryKind.End, LifetimeBoundaryCrossingDirection.Backward)); }); skipTo(-1); AddStep("Check crossings", () => { a.CheckCrossings( new LifetimeBoundaryCrossedEvent(a, LifetimeBoundaryKind.End, LifetimeBoundaryCrossingDirection.Backward)); b.CheckCrossings(new LifetimeBoundaryCrossedEvent(b, LifetimeBoundaryKind.End, LifetimeBoundaryCrossingDirection.Backward), new LifetimeBoundaryCrossedEvent(b, LifetimeBoundaryKind.Start, LifetimeBoundaryCrossingDirection.Backward)); c.CheckCrossings(new LifetimeBoundaryCrossedEvent(c, LifetimeBoundaryKind.Start, LifetimeBoundaryCrossingDirection.Backward)); }); }
public void TestCallingParentsMethod() { var c = new TestChild(); Assert.AreEqual("child", c.Test()); var m = typeof(TestChild).GetMethod("Test").GetBaseDefinition(); Assert.AreEqual(typeof(TestBase), m.DeclaringType); Assert.AreEqual(typeof(TestBase).GetMethod("Test"), m); Assert.AreEqual("child", m.Invoke(c, new object[0])); Assert.AreEqual("child", ( (TestBase)c ).Test()); var dm = new System.Reflection.Emit.DynamicMethod( "", typeof(string), new Type[] { typeof(TestBase) }, typeof(YamlNodeTest)); System.Reflection.Emit.ILGenerator ilgen = dm.GetILGenerator(); ilgen.Emit(System.Reflection.Emit.OpCodes.Ldarg_0); ilgen.Emit(System.Reflection.Emit.OpCodes.Call, typeof(TestBase).GetMethod("Test")); ilgen.Emit(System.Reflection.Emit.OpCodes.Ret); var callTest = (Call)dm.CreateDelegate(typeof(Call)); Assert.AreEqual("base", callTest.Invoke(c)); }
public static void TestWatchWithInheritance() { TestChild test = new TestChild(); Debugger.Break(); }
//只有子类型赋值过的父类型才能重新强制转化为子类型 private static void Func1() { string str; Test test = new Test(); TestChild testChild = new TestChild(); test = testChild; testChild = (TestChild)test; if (testChild.X != 0) { str = testChild.X.ToString(); Console.WriteLine(str); } Console.ReadKey(); }