From 0566dbdb04ca424df28c88a4b0344db607695f3f Mon Sep 17 00:00:00 2001 From: Anastasia Date: Mon, 27 Nov 2023 20:20:22 +0500 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BB=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=20CheckCurrentTsa?= =?UTF-8?q?r=20=D1=81=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20FluentAssertions=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D1=8F=D1=81=D0=BD=D0=B8=D0=BB=D0=B0,=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=87=D0=B5=D0=BC=D1=83=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=20CheckCurrentTsar=5FWithCustomEquality=20=D1=85=D1=83?= =?UTF-8?q?=D0=B6=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs/HomeExercises/ObjectComparison.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cs/HomeExercises/ObjectComparison.cs b/cs/HomeExercises/ObjectComparison.cs index 44d9aed4..9e16548f 100644 --- a/cs/HomeExercises/ObjectComparison.cs +++ b/cs/HomeExercises/ObjectComparison.cs @@ -16,15 +16,14 @@ public void CheckCurrentTsar() new Person("Vasili III of Russia", 28, 170, 60, null)); // Перепишите код на использование Fluent Assertions. - Assert.AreEqual(actualTsar.Name, expectedTsar.Name); - Assert.AreEqual(actualTsar.Age, expectedTsar.Age); - Assert.AreEqual(actualTsar.Height, expectedTsar.Height); - Assert.AreEqual(actualTsar.Weight, expectedTsar.Weight); - Assert.AreEqual(expectedTsar.Parent!.Name, actualTsar.Parent!.Name); - Assert.AreEqual(expectedTsar.Parent.Age, actualTsar.Parent.Age); - Assert.AreEqual(expectedTsar.Parent.Height, actualTsar.Parent.Height); - Assert.AreEqual(expectedTsar.Parent.Parent, actualTsar.Parent.Parent); + expectedTsar.Should().BeEquivalentTo(actualTsar, options => + options.Excluding(o => o.Parent!.Id) + .Excluding(o => o.Id)); + + actualTsar.Parent.Should().BeEquivalentTo(expectedTsar.Parent, options => + options.Excluding(o => o!.Parent!.Id) + .Excluding(o => o!.Id)); } [Test] @@ -36,6 +35,7 @@ public void CheckCurrentTsar_WithCustomEquality() new Person("Vasili III of Russia", 28, 170, 60, null)); // Какие недостатки у такого подхода? + //Код нерасширяем, потому что если в классе Person появятся новые поля, они не будут учитываться в этом методе Assert.True(AreEqual(actualTsar, expectedTsar)); } From c9bdbb29299692741984337272deb5100b90d049 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Tue, 28 Nov 2023 19:52:48 +0500 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D1=8F=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B5=D1=81=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs/HomeExercises/NumberValidatorTests.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cs/HomeExercises/NumberValidatorTests.cs b/cs/HomeExercises/NumberValidatorTests.cs index a2878113..e2e63746 100644 --- a/cs/HomeExercises/NumberValidatorTests.cs +++ b/cs/HomeExercises/NumberValidatorTests.cs @@ -12,20 +12,14 @@ public void Test() { Assert.Throws(() => new NumberValidator(-1, 2, true)); Assert.DoesNotThrow(() => new NumberValidator(1, 0, true)); - Assert.Throws(() => new NumberValidator(-1, 2, false)); - Assert.DoesNotThrow(() => new NumberValidator(1, 0, true)); - + Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0.0")); Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0")); - Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0.0")); Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("00.00")); Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("-0.00")); - Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0.0")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("+0.00")); Assert.IsTrue(new NumberValidator(4, 2, true).IsValidNumber("+1.23")); Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("+1.23")); Assert.IsFalse(new NumberValidator(17, 2, true).IsValidNumber("0.000")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("-1.23")); Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("a.sd")); } } From 83e3cda69b8f92969cb1189a097ea60e5cd06236 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 29 Nov 2023 14:06:05 +0500 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9D=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=D0=B4=D0=BE=D1=81=D1=82=D0=B0=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs/HomeExercises/NumberValidatorTests.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cs/HomeExercises/NumberValidatorTests.cs b/cs/HomeExercises/NumberValidatorTests.cs index e2e63746..47c4810a 100644 --- a/cs/HomeExercises/NumberValidatorTests.cs +++ b/cs/HomeExercises/NumberValidatorTests.cs @@ -11,6 +11,9 @@ public class NumberValidatorTests public void Test() { Assert.Throws(() => new NumberValidator(-1, 2, true)); + Assert.Throws(() => new NumberValidator(10, -2, true)); + Assert.Throws(() => new NumberValidator(10, 10, true)); + Assert.Throws(() => new NumberValidator(10, 11, true)); Assert.DoesNotThrow(() => new NumberValidator(1, 0, true)); Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0.0")); @@ -21,6 +24,11 @@ public void Test() Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("+1.23")); Assert.IsFalse(new NumberValidator(17, 2, true).IsValidNumber("0.000")); Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("a.sd")); + + Assert.IsFalse(new NumberValidator(10, 2, true).IsValidNumber("-0.00")); + Assert.IsFalse(new NumberValidator(10, 2, true).IsValidNumber(string.Empty)); + Assert.IsTrue(new NumberValidator(10, 2, false).IsValidNumber("-0.00")); + Assert.IsTrue(new NumberValidator(10, 2, false).IsValidNumber("0.00")); } } From abccd6792472b1575a78f2f7dd491e64c7ead9aa Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 29 Nov 2023 23:41:06 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=BF=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D0=B8?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=B0=20=D0=B1=D0=B5=D0=B7=20=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BA-=D1=82=D1=80=D0=B5=D0=B9=D1=81=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BD=D1=8F=D1=82=D0=BD=D0=BE,=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=B0=D0=BA=D0=B8=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BA=D0=BE=D0=B4=20=D0=BD=D0=B5=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=B5=D1=82,=20=D0=B8=20=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=83=D0=BF=D0=B0=D0=B2=D1=88=D0=B0=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D1=83=D0=B5=D1=82=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=85=D0=BE=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BE=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs/HomeExercises/NumberValidatorTests.cs | 58 +++++++++++++++--------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/cs/HomeExercises/NumberValidatorTests.cs b/cs/HomeExercises/NumberValidatorTests.cs index 47c4810a..7a1ffd20 100644 --- a/cs/HomeExercises/NumberValidatorTests.cs +++ b/cs/HomeExercises/NumberValidatorTests.cs @@ -7,29 +7,45 @@ namespace HomeExercises { public class NumberValidatorTests { - [Test] - public void Test() + [TestCase(-1, 2, true)] + [TestCase(10, -2, true)] + [TestCase(10, 10, true)] + [TestCase(10, 11, true)] + public void ThrowsIfNotValid(int prescision, int scale, bool onlyPositive) { - Assert.Throws(() => new NumberValidator(-1, 2, true)); - Assert.Throws(() => new NumberValidator(10, -2, true)); - Assert.Throws(() => new NumberValidator(10, 10, true)); - Assert.Throws(() => new NumberValidator(10, 11, true)); - Assert.DoesNotThrow(() => new NumberValidator(1, 0, true)); - - Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0.0")); - Assert.IsTrue(new NumberValidator(17, 2, true).IsValidNumber("0")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("00.00")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("-0.00")); - Assert.IsTrue(new NumberValidator(4, 2, true).IsValidNumber("+1.23")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("+1.23")); - Assert.IsFalse(new NumberValidator(17, 2, true).IsValidNumber("0.000")); - Assert.IsFalse(new NumberValidator(3, 2, true).IsValidNumber("a.sd")); - - Assert.IsFalse(new NumberValidator(10, 2, true).IsValidNumber("-0.00")); - Assert.IsFalse(new NumberValidator(10, 2, true).IsValidNumber(string.Empty)); - Assert.IsTrue(new NumberValidator(10, 2, false).IsValidNumber("-0.00")); - Assert.IsTrue(new NumberValidator(10, 2, false).IsValidNumber("0.00")); + Assert.Throws(() => new NumberValidator(prescision, scale, onlyPositive)); } + + [TestCase(1, 0, true)] + public void DoesNotThrows(int prescision, int scale, bool onlyPositive) + { + Assert.DoesNotThrow(() => new NumberValidator(prescision, scale, onlyPositive)); + } + + + [TestCase(3, 2, true, "00.00")] + [TestCase(3, 2, true, "-0.00")] + [TestCase(3, 2, true, "+1.23")] + [TestCase(17, 2, true, "0.000")] + [TestCase(3, 2, true, "a.sd")] + [TestCase(10, 2, true, "-0.00")] + [TestCase(10, 2, true, "")] + public void NotValidNumber(int prescision, int scale, bool onlyPositive, string value) + { + Assert.IsFalse(new NumberValidator(prescision, scale, onlyPositive).IsValidNumber(value)); + } + + [TestCase(17, 2, true, "0.0")] + [TestCase(17, 2, true, "0")] + [TestCase(4, 2, true, "+1.23")] + [TestCase(10, 2, false, "-0.00")] + [TestCase(10, 2, false, "0.00")] + [TestCase(10, 2, false, "0,00")] + public void ValidNumber(int prescision, int scale, bool onlyPositive, string value) + { + Assert.IsTrue(new NumberValidator(prescision, scale, onlyPositive).IsValidNumber(value)); + } + } public class NumberValidator From 02b9b87bb038417acb0e23daae81225232112543 Mon Sep 17 00:00:00 2001 From: Anastasia Date: Wed, 29 Nov 2023 23:44:48 +0500 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=83=D1=81=D1=82?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs/HomeExercises/NumberValidatorTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/cs/HomeExercises/NumberValidatorTests.cs b/cs/HomeExercises/NumberValidatorTests.cs index 7a1ffd20..c9172a4f 100644 --- a/cs/HomeExercises/NumberValidatorTests.cs +++ b/cs/HomeExercises/NumberValidatorTests.cs @@ -22,7 +22,6 @@ public void DoesNotThrows(int prescision, int scale, bool onlyPositive) Assert.DoesNotThrow(() => new NumberValidator(prescision, scale, onlyPositive)); } - [TestCase(3, 2, true, "00.00")] [TestCase(3, 2, true, "-0.00")] [TestCase(3, 2, true, "+1.23")]