From fd3fad05d1e4ce775db38e1b7cbb3fea7279bed3 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 23 Mar 2018 11:27:55 -0400 Subject: [PATCH] Add board tests --- test/chess/board_test.exs | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/chess/board_test.exs diff --git a/test/chess/board_test.exs b/test/chess/board_test.exs new file mode 100644 index 0000000..0215798 --- /dev/null +++ b/test/chess/board_test.exs @@ -0,0 +1,43 @@ +defmodule Chess.BoardTest do + @moduledoc false + + use Chess.DataCase + + alias Chess.Board + + test "returns a piece from the board" do + board = Board.default + + expected_piece = %{"type" => "pawn", "colour" => "white"} + assert Board.piece(board, {4, 1}) == expected_piece + end + + test "finds pieces on the board" do + board = Board.default + + piece = %{"type" => "pawn", "colour" => "white"} + expected_result = [ + {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, + ] + assert Board.search(board, piece) == expected_result + end + + test "finds a single piece on the board" do + board = Board.default + + piece = %{"type" => "king", "colour" => "black"} + assert Board.search(board, piece) == [{4, 7}] + end + + test "moves a piece" do + board = %{ + "3,0" => %{"type" => "queen", "colour" => "white"}, + } + + new_board = Board.move_piece(board, %{"from" => [3, 0], "to" => [5, 2]}) + + assert new_board == %{ + "5,2" => %{"type" => "queen", "colour" => "white"}, + } + end +end