public void Create_FromState_InitializedField() { var state = new GameState() { Player2 = new GameState.Player() { Combo = 12, Points = 10, Field = new int[,] { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 }, { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, }, }, Player1 = new GameState.Player() { Combo = 0, Points = 0, Field = new int[,] { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 }, { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }, }, }, }; var act = Field.Create(state, PlayerName.Player2); FieldAssert.AreEqual("..........|........X.|.......XX.", 10, 12, 0, act); }
public void RoundtripHappyPath() { var dummy = new SerializableDummy(); var roundtrip = BinaryFormatterAssert.Roundtrip(dummy); FieldAssert.Equal(dummy, roundtrip); }
public void NotEqualIEnumerablesOfDummiesTwoDiffs() { var l1 = new[] { new Dummy { Value = 1 }, new Dummy { Value = 2 } }; var l2 = new[] { new Dummy { Value = 2 }, new Dummy { Value = 5 } }; var ex1 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l1, l2)); var em1 = " Fields differ between expected and actual, here are the 2 differences:\r\n" + " expected[0].value: 1\r\n" + " actual[0].value: 2\r\n" + "\r\n" + " expected[1].value: 2\r\n" + " actual[1].value: 5"; Assert.AreEqual(em1, ex1.Message); var ex2 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l2, l1)); var em2 = " Fields differ between expected and actual, here are the 2 differences:\r\n" + " expected[0].value: 2\r\n" + " actual[0].value: 1\r\n" + "\r\n" + " expected[1].value: 5\r\n" + " actual[1].value: 2"; Assert.AreEqual(em2, ex2.Message); }
public void NotEqualNestedOneLevel3() { var l1 = new Level { Value = 1, Next = new Level { Value = 2 } }; var l2 = new Level { Value = 1, Next = new Level { Value = 3 } }; var ex1 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l1, l2)); var em1 = " Found this difference between expected and actual:\r\n" + " expected.next.value: 2\r\n" + " actual.next.value: 3"; Assert.AreEqual(em1, ex1.Message); var ex2 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l2, l1)); var em2 = " Found this difference between expected and actual:\r\n" + " expected.next.value: 3\r\n" + " actual.next.value: 2"; Assert.AreEqual(em2, ex2.Message); }
public void Apply_IClearRow_Added() { var field = Field.Create(0, 0, 2, "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX|XXXX....XX"); var act = field.Apply(Block.I, new Position(4, 19)); var exp = "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX"; FieldAssert.AreEqual(exp, 0, 0, 2, act); }
public void Create_Field_InitializedField() { var act = Field.Create(0, 0, 17, @" .......... .......XX. "); FieldAssert.AreEqual("..........|.......XX.", 0, 0, 17, act); }
public void SkipBlock_None_SkipOf3() { var exp = "..X..XX...|XXX...XXXX|XXXX.XXXXX"; var field = Field.Create(1, 2, 4, exp); var act = field.SkipBlock(); FieldAssert.AreEqual(exp, 1, 0, 3, act); }
public void LockRow_FieldWithouEmptyRpws_NoneField() { var field = Field.Create(10, 3, 17, @" ........X. .......XX."); var act = field.LockRow(); FieldAssert.IsNone(act); }
public void EqualIEnumerablesOfInts() { var l1 = new[] { 1, 2 }; var l2 = new[] { 1, 2 }; FieldAssert.Equal(l1, l1); FieldAssert.Equal(l2, l1); FieldAssert.Equal(l1, l2); }
public void LockRow_None_FieldWithLessRows() { var field = Field.Create(10, 3, 17, @" .......... ........X. .......XX."); var act = field.LockRow(); FieldAssert.AreEqual("........X.|.......XX.", 10, 3, 17, act); }
public void Garage_OneRow_NoSpace() { var field = Field.Create(0, 0, 17, @" ......X..X .XXXXXXXXX XX.XXXXXXX"); var act = field.Garbage(Row.Garbage[2]); FieldAssert.IsNone(act); }
public void HappyPath() { var actual = new Dummy { Value = 2 }; var roundtrip = XmlSerializerAssert.Roundtrip(actual); Assert.AreEqual(roundtrip.Value, actual.Value); FieldAssert.Equal(actual, roundtrip); }
public void Apply_FullClear_Adds18Points() { var field = Field.Create(6, 0, 17, @" .......... ...XXXXXXX XX.XXXXXXX"); var act = field.Apply(Block.J[Block.RotationType.Uturn], new Position(0, 1)); var exp = "..........|..........|.........."; FieldAssert.AreEqual(exp, 24, 1, 17, act); }
public void Apply_SingleClearWithCombo1_Adds0Points() { var field = Field.Create(8, 1, 17, @" .......... ....XXXXXX .XXXXXXXXX"); var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1)); var exp = "..........|..........|XXX.XXXXXX"; FieldAssert.AreEqual(exp, 8, 1, 17, act); }
public void Apply_DoubleClear0_Adds3Points() { var field = Field.Create(7, 0, 17, @" .........X ...XXXXXXX .XXXXXXXXX"); var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1)); var exp = "..........|..........|.........X"; FieldAssert.AreEqual(exp, 10, 1, 17, act); }
public void EqualXmlAttributeClass() { var actual = new XmlAttributeClass { Value = 2 }; var expectedXml = "<XmlAttributeClass Value=\"2\" />"; var roundtrip = DataContractSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreNamespaces | XmlAssertOptions.IgnoreDeclaration); Assert.AreEqual(roundtrip.Value, actual.Value); FieldAssert.Equal(actual, roundtrip); }
public void Apply_TripleClear_Adds6Points() { var field = Field.Create(4, 0, 17, @" .......... .XXXXXXXXX .XXXXXXXXX .XXXXXXXXX"); var act = field.Apply(Block.I[Block.RotationType.Left], new Position(0, 0)); var exp = "..........|..........|..........|X........."; FieldAssert.AreEqual(exp, 10, 1, 17, act); }
public void Apply_I_Added() { var field = Field.Create(0, 0, 17, @" .......... .......... .......... .......XX. "); var act = field.Apply(Block.I, new Position(0, 3)); var exp = "..........|..........|..........|XXXX...XX."; FieldAssert.AreEqual(exp, 0, 0, 17, act); }
public void EqualNoDeclarationOrNamespaces() { var actual = new DataContractDummy { Value = 2 }; var expectedXml = "<DataContractDummy>\r\n" + " <Value>2</Value>\r\n" + "</DataContractDummy>"; var roundtrip = DataContractSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreDeclaration | XmlAssertOptions.IgnoreNamespaces); Assert.AreEqual(roundtrip.Value, actual.Value); FieldAssert.Equal(actual, roundtrip); }
public void Apply_DoubleTSpin_AddsPointsAndSkips() { var field = Field.Create(0, 0, 17, @" ..X..XX... XXX...XXXX XXXX.XXXXX"); var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1)); var exp = "..........|..........|..X..XX..."; FieldAssert.AreEqual(exp, 10, 1, 18, act); }
public void EqualParentChildren() { var p1 = new Parent { new Child(1), new Child(2) }; var p2 = new Parent { new Child(1), new Child(2) }; FieldAssert.Equal(p1, p1); FieldAssert.Equal(p2, p1); FieldAssert.Equal(p1, p2); }
public void EqualNestedOneLevel1() { var l1 = new Level { Value = 2 }; var l2 = new Level { Value = 2 }; FieldAssert.Equal(l1, l1); FieldAssert.Equal(l2, l1); FieldAssert.Equal(l1, l2); }
public void EqualDummies() { var d1 = new Dummy { Value = 1 }; var d2 = new Dummy { Value = 1 }; FieldAssert.Equal(d1, d1); FieldAssert.Equal(d2, d1); FieldAssert.Equal(d1, d2); }
public void Garbage_TwoRows_AppliedSuccessful() { var field = Field.Create(0, 0, 17, @" .......... .......... ......X..X .XXXXXXXXX XX.XXXXXXX"); var act = field.Garbage(Row.Garbage[0], Row.Garbage[1]); var exp = "......X..X|.XXXXXXXXX|XX.XXXXXXX|.XXXXXXXXX|X.XXXXXXXX"; FieldAssert.AreEqual(exp, 0, 0, 17, act); }
public void Apply_QuadrupleClear_Adds10Points() { var field = Field.Create(8, 0, 17, @" XX.......X XXXXX.XXXX XXXXX.XXXX XXXXX.XXXX XXXXX.XXXX"); var act = field.Apply(Block.I[Block.RotationType.Left], new Position(5, 1)); var exp = "..........|..........|..........|..........|XX.......X"; FieldAssert.AreEqual(exp, 18, 1, 18, act); }
public void Equal() { var actual = new DataContractDummy { Value = 2 }; var expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" + "<DataContractDummy xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/Gu.SerializationAsserts.Tests.Dtos\">\r\n" + " <Value>2</Value>\r\n" + "</DataContractDummy>"; var roundtrip = DataContractSerializerAssert.Equal(expectedXml, actual); Assert.AreEqual(roundtrip.Value, actual.Value); FieldAssert.Equal(actual, roundtrip); }
public void Apply_Row1ToMuchSpaceToMuchSpaceOnHead_NoTSpin() { var field = Field.Create(0, 0, 0, @" ..X..XX... XX....XXXX XXXX.XXXXX" ); var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1)); FieldAssert.AreEqual(@" .......... ..X..XX... XX.XXXXXXX" , 5, 1, 0, act); }
/// <summary> /// 1. Places <paramref name="item"/> in a ContainerClass{T} container1 /// 2. Serializes container1 /// 3. Deserializes the containerJson to container2 and does FieldAssert.Equal(container1, container2); /// 4. Serializes container2 /// 5. Checks JsonAssert.Equal(containerJson1, containerJson2, JsonAssertOptions.Verbatim); /// </summary> /// <typeparam name="T">The type of <paramref name="item"/></typeparam> /// <param name="item">The instance to roundtrip</param> /// <param name="settings">The settings to use when serializing and deserializing.</param> /// <returns>The serialized and deserialized instance (container2.Other)</returns> public static T Roundtrip <T>(T item, JsonSerializerSettings settings) { Roundtripper.Simple(item, nameof(item), x => ToJson(x, settings), x => FromJson <T>(x, settings)); var roundtripped = Roundtripper.InContainer( item, nameof(item), x => ToJson(x, settings), x => FromJson <ContainerClass <T> >(x, settings), (e, a) => JsonAssert.Equal(e, a, JsonAssertOptions.Verbatim)); FieldAssert.Equal(item, roundtripped); return(roundtripped); }
/// <summary> /// 1. Places <paramref name="item"/> in a ContainerClass{T} container1 /// 2. Serializes container1 /// 3. Deserializes the containerJson to container2 and does FieldAssert.Equal(container1, container2); /// 4. Serializes container2 /// 5. Checks JsonAssert.Equal(containerJson1, containerJson2, JsonAssertOptions.Verbatim); /// </summary> /// <typeparam name="T">The type of <paramref name="item"/></typeparam> /// <param name="item">The instance to roundtrip</param> /// <returns>The serialized and deserialized instance (container2.Other)</returns> public static T Roundtrip <T>(T item) { Roundtripper.Simple(item, nameof(item), ToJson, FromJson <T>); var roundtripped = Roundtripper.InContainer( item, nameof(item), ToJson, FromJson <ContainerClass <T> >, (e, a) => JsonAssert.Equal(e, a, JsonAssertOptions.Verbatim)); FieldAssert.Equal(item, roundtripped); return(roundtripped); }
public void EqualWithAttributeAndDeclaration() { var actual = new Dummy { Value = 2 }; var expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" + "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" + " <Value>2</Value>\r\n" + "</Dummy>"; var roundtrip = XmlSerializerAssert.Equal(expectedXml, actual); Assert.AreEqual(roundtrip.Value, actual.Value); FieldAssert.Equal(actual, roundtrip); }