Skip to content

Instantly share code, notes, and snippets.

@JamesBender
Created April 7, 2016 17:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JamesBender/16349799fc4bc5da6086a523bca7f6eb to your computer and use it in GitHub Desktop.
Save JamesBender/16349799fc4bc5da6086a523bca7f6eb to your computer and use it in GitHub Desktop.
using System;
using Moq;
using NUnit.Framework;
using TicTacToe.Core;
using TicTacToe.Core.GameNetworkInterfaces;
namespace TicTacToe.Tests
{
[TestFixture]
public class GameEngineTests
{
private GameEngine _gameEngine;
private Mock<ICommonGameNetworkControl> _networkMock;
[SetUp]
public void Setup()
{
_networkMock = new Mock<ICommonGameNetworkControl>();
_gameEngine = new GameEngine(_networkMock.Object);
}
[Test]
public void IfNoSquareHaveValueThenNoWinner()
{
//Arrainge
var board = new string[3,3] { {"","",""}, {"","",""},{"","",""}};
var expected = "";
//Act
var result = _gameEngine.GetWinner(board);
//Assert
Assert.AreEqual(expected, result);
}
[Test]
public void WhenTopRowIsAllXThenXWins()
{
//Arrainge
var board = new string[3, 3] { { "X", "X", "X" }, { "", "", "" }, { "", "", "" } };
var expected = "X";
//Act
var result = _gameEngine.GetWinner(board);
//Assert
Assert.AreEqual(expected, result);
}
[Test]
public void ShouldBeAbleToLoginToNetwork()
{
//Arrainge
var userName = "Bob";
var password = "TicTacToeMaster";
var expectedValue = Guid.NewGuid();
_networkMock.Setup(x => x.Login(userName, password)).Returns(expectedValue);
//Act
var result = _gameEngine.Login(userName, password);
//Assert
Assert.AreEqual(expectedValue, result);
}
[Test]
[ExpectedException(typeof(ArgumentException))]
public void WhenUserNameIsEmptyLoginShouldThrowArgumentException()
{
//Arrainge
var userName = "";
var password = "TicTacToeMaster";
var expectedValue = Guid.NewGuid();
_networkMock.Setup(x => x.Login(userName, password)).Returns(Guid.Empty);
//Act
var result = _gameEngine.Login(userName, password);
//Assert
Assert.AreEqual(expectedValue, result);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment