diff --git a/.travis.yml b/.travis.yml index 739464ec..9d791276 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,4 +6,5 @@ branches: install: - nuget restore TravisCI.sln script: - - msbuild /p:Configuration=Release TravisCI.sln \ No newline at end of file + - msbuild /p:Configuration=Release TravisCI.sln + - mono ./packages/NUnit.ConsoleRunner.*/tools/nunit3-console.exe ./Tests/bin/Release/Tests.dll \ No newline at end of file diff --git a/Tests/UnitTests.cs b/Tests/UnitTests.cs index 84cde036..dcfb2cc1 100644 --- a/Tests/UnitTests.cs +++ b/Tests/UnitTests.cs @@ -31,5 +31,100 @@ public void Add_Null() } // Implement 3 tests per operation, following a similar pattern as above + [Test] + public void Subtract_Valid() + { + Assert.AreEqual(-1, Program.Subtract("1", "2")); + Assert.AreEqual(1, Program.Subtract("3", "2")); + Assert.AreEqual(-2, Program.Subtract("5", "7")); + } + + [Test] + public void Subtract_Invalid() + { + Assert.Throws(() => Program.Subtract("1", "a")); + Assert.Throws(() => Program.Subtract("a", "1")); + Assert.Throws(() => Program.Subtract("a", "a")); + } + + [Test] + public void Subtract_Null() + { + Assert.Throws(() => Program.Subtract("1", null)); + Assert.Throws(() => Program.Subtract(null, "1")); + Assert.Throws(() => Program.Subtract(null, null)); + } + + [Test] + public void Multiply_Valid() + { + Assert.AreEqual(2, Program.Multiply("1", "2")); + Assert.AreEqual(6, Program.Multiply("3", "2")); + Assert.AreEqual(35, Program.Multiply("5", "7")); + } + + [Test] + public void Multiply_Invalid() + { + Assert.Throws(() => Program.Multiply("1", "a")); + Assert.Throws(() => Program.Multiply("a", "1")); + Assert.Throws(() => Program.Multiply("a", "a")); + } + + [Test] + public void Multiply_Null() + { + Assert.Throws(() => Program.Multiply("1", null)); + Assert.Throws(() => Program.Multiply(null, "1")); + Assert.Throws(() => Program.Multiply(null, null)); + } + + [Test] + public void Divide_Valid() + { + Assert.AreEqual(2, Program.Divide("2", "1")); + Assert.AreEqual(3, Program.Divide("3", "1")); + Assert.AreEqual(2, Program.Divide("4", "2")); + } + + [Test] + public void Divide_Invalid() + { + Assert.Throws(() => Program.Divide("1", "a")); + Assert.Throws(() => Program.Divide("a", "1")); + Assert.Throws(() => Program.Divide("a", "a")); + } + + [Test] + public void Divide_Null() + { + Assert.Throws(() => Program.Divide("1", null)); + Assert.Throws(() => Program.Divide(null, "1")); + Assert.Throws(() => Program.Divide(null, null)); + } + + [Test] + public void Power_Valid() + { + Assert.AreEqual(1, Program.Power("1", "2")); + Assert.AreEqual(9, Program.Power("3", "2")); + Assert.AreEqual(125, Program.Power("5", "3")); + } + + [Test] + public void Power_Invalid() + { + Assert.Throws(() => Program.Power("1", "a")); + Assert.Throws(() => Program.Power("a", "1")); + Assert.Throws(() => Program.Power("a", "a")); + } + + [Test] + public void Power_Null() + { + Assert.Throws(() => Program.Power("1", null)); + Assert.Throws(() => Program.Power(null, "1")); + Assert.Throws(() => Program.Power(null, null)); + } } }