public void Find_ThrowsIfFinishNodeMarkIsinfinity_Test()
        {
            // Arrange
            var finish = Mock.Of<DijkstraNode>(d => d.TotalWeigth == null && d.Previous == Mock.Of<DijkstraNode>());
            var graph = Mock.Of<DijkstraGraph>(t => t.FinishNode() == finish);
            var dijkstra = new ShortestWay.Dijkstra.Dijkstra();

            // Assert
            Assert.Throws<NoRouteFromStartToFinishException>(() => dijkstra.GetShortestWay(graph));
        }
        public void Find_ReturnsWayNodeListByPrevious_Test()
        {
            // Arrange
            var prevPrev = Mock.Of<DijkstraNode>();
            var prev = Mock.Of<DijkstraNode>(t => t.Previous == prevPrev);
            var finishNode = Mock.Of<DijkstraNode>(t => t.Previous == prev && t.TotalWeigth == 100500);
            var graph = Mock.Of<DijkstraGraph>(t => t.FinishNode() == finishNode);
            var dijkstra = new ShortestWay.Dijkstra.Dijkstra();

            // Act
            var way = dijkstra.GetShortestWay(graph);

            // Assert
            Assert.AreEqual(way[0], prevPrev);
            Assert.AreEqual(way[1], prev);
            Assert.AreEqual(way[2], finishNode);
        }