예제 #1
0
        public void XTest_pack_move_not_neighbor()
        {
            Node node1 = new Node("1");
            Node node2 = new Node("2");
            Pack pack  = new Pack("pack", 5);

            pack.location = node1;
            node1.packs.Add(pack);
            Assert.Throws <ArgumentException>(() => pack.Move(node2));
        }
예제 #2
0
        public void NTest_move_throwsException()
        {
            Dungeon dungeon = new Dungeon(3, 4);
            Pack    pack    = new Pack("1", 2, dungeon);
            Node    node1   = new Node("1", 1);
            Node    node2   = new Node("2", 1);

            pack.location = node1;
            node1.packs.Add(pack);
            Assert.Throws <ArgumentException>(() => pack.Move(node2));
        }
예제 #3
0
        public void NTest_move_packMoves()
        {
            Dungeon dungeon = new Dungeon(3, 9);             //can use Utils.Test
            //capacity of a node in first zone = 6
            Pack        pack1     = new Pack("1", 4, dungeon);
            List <Node> firstZone = dungeon.zones.First().nodesInZone;

            if (firstZone.Count > 1)
            {
                Node firstNode = firstZone.ElementAt(1);
                pack1.location = firstNode;
                firstNode.packs.Add(pack1);
                Node secondNode = firstNode.neighbors.First();
                pack1.Move(secondNode);
                Assert.AreSame(secondNode, pack1.location);
            }
        }
예제 #4
0
 public void Xtest_pack_move_over_capacity()
 {
     using (StringWriter sw = new StringWriter())
     {
         TextWriter temp    = Console.Out;
         Dungeon    dungeon = new Dungeon(5, 0, 5, new Player("1"));
         Pack       pack    = new Pack("pack", 50);
         pack.dungeon = dungeon;
         dungeon.nodeList[1].packs.Add(pack);
         pack.location = dungeon.nodeList[1];
         Console.SetOut(sw);
         pack.Move(dungeon.nodeList[1].neighbors[0]);
         string expected = "** Pack " + pack.id + " is trying to move to a full node " + dungeon.nodeList[1].neighbors[0].id + ", but this would cause the node to exceed its capacity. Rejected.\r\n";
         Assert.Equal(expected, sw.ToString());
         Console.SetOut(temp);
         sw.Dispose();
     }
 }
예제 #5
0
        public void XTest_pack_move()
        {
            Dungeon dungeon = new Dungeon(5, 2, 5, new Player("test"));
            Node    node    = new Node("testnode");

            node.Connect(dungeon.nodeList[1]);
            dungeon.nodeList.Add(node);
            Pack pack = new Pack("testpack", 2);

            pack.location             = dungeon.nodeList[1];
            pack.dungeon              = dungeon;
            dungeon.nodeList[1].packs = new List <Pack>()
            {
                pack
            };
            pack.Move(node);
            Assert.Contains(pack, node.packs);
            Assert.DoesNotContain(pack, dungeon.nodeList[1].packs);
        }
예제 #6
0
        public void NTest_move_nodeIsAlreadyFullRejected()
        {
            Dungeon dungeon = new Dungeon(3, 3);             //can use Utils.Test
            //capacity of a node in first zone = 6
            Pack        pack1     = new Pack("1", 4, dungeon);
            Pack        pack2     = new Pack("2", 3, dungeon);
            List <Node> firstZone = dungeon.zones.First().nodesInZone;

            if (firstZone.Count > 1)
            {
                pack1.location = firstZone.ElementAt(1);
                firstZone.ElementAt(1).packs.Add(pack1);
                pack2.location = firstZone.ElementAt(2);
                firstZone.ElementAt(2).packs.Add(pack2);
                firstZone.ElementAt(1).neighbors.Add(firstZone.ElementAt(2));
                firstZone.ElementAt(2).neighbors.Add(firstZone.ElementAt(1));
            }
            pack1.Move(firstZone.ElementAt(2));
            //rejected
            Assert.AreSame(firstZone.ElementAt(1), pack1.location);
        }