Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
language: csharp
solution: TravisCI.sln
branches:
only:
- master
install:
- nuget restore TravisCI.sln
script:
- msbuild /p:Configuration=Release TravisCI.sln
- mono ./packages/NUnit.ConsoleRunner.*/tools/nunit3-console.exe ./Tests/bin/Release/Tests.dll
3 changes: 2 additions & 1 deletion Console/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ public static double Divide(string x, string y)
// Implement this method following a similar pattern as above
public static double Power(string x, string y)
{
throw new NotImplementedException();
//
return Math.Pow(Double.Parse(x), Double.Parse(y));
}
}

Expand Down
117 changes: 111 additions & 6 deletions Tests/UnitTests.cs
Original file line number Diff line number Diff line change
@@ -1,35 +1,140 @@
using System;
using System;
using NUnit.Framework;

namespace TravisCILab
{
[TestFixture]
public class Math
public class MathLi
{
#region Add
[Test]
public void Add_Valid()
public void Add_ValidLi()
{
Assert.AreEqual(3, Program.Add("1", "2"));
Assert.AreEqual(5, Program.Add("3", "2"));
Assert.AreEqual(12, Program.Add("5", "7"));
}

[Test]
public void Add_Invalid()
public void Add_InvalidLi()
{
Assert.Throws<FormatException>(() => Program.Add("1", "a"));
Assert.Throws<FormatException>(() => Program.Add("a", "1"));
Assert.Throws<FormatException>(() => Program.Add("a", "a"));
}

[Test]
public void Add_Null()
public void Add_NullLi()
{
Assert.Throws<ArgumentNullException>(() => Program.Add("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Add(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Add(null, null));
}
#endregion

// Implement 3 tests per operation, following a similar pattern as above
#region Subtract
[Test]
public void Subtract_ValidLi()
{
Assert.AreEqual(3, Program.Subtract("5", "2"));
Assert.AreEqual(1, Program.Subtract("3", "2"));
Assert.AreEqual(1, Program.Subtract("5", "4"));
}

[Test]
public void Subtract_InvalidLi()
{
Assert.Throws<FormatException>(() => Program.Subtract("1", "a"));
Assert.Throws<FormatException>(() => Program.Subtract("a", "1"));
Assert.Throws<FormatException>(() => Program.Subtract("a", "a"));
}

[Test]
public void Subtract_NullLi()
{
Assert.Throws<ArgumentNullException>(() => Program.Subtract("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Subtract(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Subtract(null, null));
}
#endregion

#region Multiply
[Test]
public void Multiply_ValidLi()
{
Assert.AreEqual(2, Program.Multiply("1", "2"));
Assert.AreEqual(6, Program.Multiply("3", "2"));
Assert.AreEqual(5, Program.Multiply("5", "1"));
}

[Test]
public void Multiply_InvalidLi()
{
Assert.Throws<FormatException>(() => Program.Multiply("1", "a"));
Assert.Throws<FormatException>(() => Program.Multiply("a", "1"));
Assert.Throws<FormatException>(() => Program.Multiply("a", "a"));
}

[Test]
public void Multiply_NullLi()
{
Assert.Throws<ArgumentNullException>(() => Program.Multiply("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Multiply(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Multiply(null, null));
}
#endregion

#region Divide
[Test]
public void Divide_ValidLi()
{
Assert.AreEqual(3, Program.Divide("3", "1"));
Assert.AreEqual(1.5, Program.Divide("3", "2"));
Assert.AreEqual(12, Program.Divide("24", "2"));
}

[Test]
public void Divide_InvalidLi()
{
Assert.Throws<FormatException>(() => Program.Divide("1", "a"));
Assert.Throws<FormatException>(() => Program.Divide("a", "1"));
Assert.Throws<FormatException>(() => Program.Divide("a", "a"));
}

[Test]
public void Divide_NullLi()
{
Assert.Throws<ArgumentNullException>(() => Program.Divide("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Divide(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Divide(null, null));
}
#endregion

#region Power
[Test]
public void Power_ValidLi()
{
Assert.AreEqual(1, Program.Power("1", "2"));
Assert.AreEqual(9, Program.Power("3", "2"));
Assert.AreEqual(5, Program.Power("5", "1"));
}

[Test]
public void Power_InvalidLi()
{
Assert.Throws<FormatException>(() => Program.Power("1", "a"));
Assert.Throws<FormatException>(() => Program.Power("a", "1"));
Assert.Throws<FormatException>(() => Program.Power("a", "a"));
}

[Test]
public void Power_NullLi()
{
Assert.Throws<ArgumentNullException>(() => Program.Power("1", null));
Assert.Throws<ArgumentNullException>(() => Program.Power(null, "1"));
Assert.Throws<ArgumentNullException>(() => Program.Power(null, null));
}
#endregion
}
}