Last active
November 12, 2021 17:35
-
-
Save JayBazuzi/01753887ff3b4a6b39200ad55efe06cf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// requires https://www.nuget.org/packages/FluentAssertions/ | |
using FluentAssertions; | |
using FluentAssertions.Primitives; | |
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
[TestClass] | |
public class UnitTest1 | |
{ | |
[TestMethod] | |
public void TestMethod1() | |
{ | |
// create a 11X9 Battleship game | |
var battleshipGame = new BattleshipGame() | |
.Should().HaveWidth(11).And.HaveHeight(9).And.Subject; | |
} | |
} | |
public class BattleshipGame | |
{ | |
public BattleshipGame() | |
{ | |
// placeholder; Width and Height should be initialized in some way we're not specifying today | |
Width = 11; | |
Height = 9; | |
} | |
public int Width { get; } | |
public int Height { get; } | |
} | |
public static class BattleshipGameExtensions | |
{ | |
public static Assertions Should(this BattleshipGame subject) | |
{ | |
return new Assertions(subject); | |
} | |
public class Assertions : ReferenceTypeAssertions<BattleshipGame, Assertions> | |
{ | |
public Assertions(BattleshipGame subject) : base(subject) | |
{ | |
} | |
protected override string Identifier => "Battleship"; | |
public AndConstraint<Assertions> HaveWidth(int i) | |
{ | |
Subject.Width.Should().Be(i); | |
return new AndConstraint<Assertions>(this); | |
} | |
public AndConstraint<Assertions> HaveHeight(int i) | |
{ | |
Subject.Height.Should().Be(i); | |
return new AndConstraint<Assertions>(this); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment