Ejemplo n.º 1
0
        public void TestCanBeUpgradedPairNull()
        {
            var animals = GetThreeAnimals(out var a1, out var a2, out var a3);

            UpgradeCommunication u = null;

            Assert.Throws <ArgumentNullException>(() => animals.CanBeUpgraded(a2, u));
            Assert.Throws <ArgumentNullException>(() => animals.CanBeUpgraded(null, new UpgradeCommunication()));
        }
Ejemplo n.º 2
0
        public void TestRemovePairUpgradeNull()
        {
            var animals = GetThreeAnimals(out var a1, out var a2, out var a3);
            var u1      = new UpgradeCommunication();

            animals.AddUpgrade(a1, u1);
            animals.AddUpgrade(a2, new UpgradeCommunication());

            Assert.Throws <ArgumentNullException>(() => animals.RemoveUpgrade(null, u1));
            Assert.Throws <ArgumentNullException>(() => animals.RemoveUpgrade(a1, null));
        }
Ejemplo n.º 3
0
        public void TestRemovePairUpgrade()
        {
            var animals = GetThreeAnimals(out var a1, out var a2, out var a3);
            var u1      = new UpgradeCommunication();

            animals.AddUpgrade(a1, u1);
            animals.AddUpgrade(a2, new UpgradeCommunication());

            animals.RemoveUpgrade(a1, u1);

            Assert.DoesNotContain(u1, a1.Upgrades);
            Assert.DoesNotContain(u1, a2.Upgrades);
        }
Ejemplo n.º 4
0
        public void TestSetPositionChainChainRightGap()
        {
            var animals = GetEightAnimals(out var a1, out var a2, out var a3, out var a4, out var a5, out var a6, out var a7, out var a8);
            var c1      = new UpgradeCommunication();
            var c2      = new UpgradeCommunication();

            animals.AddUpgrade(a2, c1);
            animals.AddUpgrade(a3, c2);

            animals.SetNewPosition(a2, 6);

            Assert.Equal(4, animals.GetPosition(a2));
            Assert.Equal(5, animals.GetPosition(a3));
            Assert.Equal(6, animals.GetPosition(a4));
            Assert.Equal(a3, c2.LeftAnimal);
            Assert.Equal(a2, c1.LeftAnimal);
        }
Ejemplo n.º 5
0
        public void TestSetPositionChainChainLeftGap()
        {
            var animals = GetEightAnimals(out var a1, out var a2, out var a3, out var a4, out var a5, out var a6, out var a7, out var a8);
            var c1      = new UpgradeCommunication();
            var c2      = new UpgradeCommunication();

            animals.AddUpgrade(a5, c1);
            animals.AddUpgrade(a6, c2);

            animals.SetNewPosition(a5, 1);

            Assert.Equal(1, animals.GetPosition(a5));
            Assert.Equal(2, animals.GetPosition(a6));
            Assert.Equal(3, animals.GetPosition(a7));
            Assert.Equal(a5, c1.LeftAnimal);
            Assert.Equal(a6, c2.LeftAnimal);
        }
Ejemplo n.º 6
0
        public void TestSetPositionChainInvert3Animals()
        {
            var animals = GetEightAnimals(out var a1, out var a2, out var a3, out var a4, out var a5, out var a6, out var a7, out var a8);
            var c1      = new UpgradeCommunication();
            var c2      = new UpgradeCommunication();

            animals.AddUpgrade(a2, c1);
            animals.AddUpgrade(a3, c2);

            animals.SetNewPosition(a2, 3);

            Assert.Equal(3, animals.GetPosition(a2));
            Assert.Equal(2, animals.GetPosition(a3));
            Assert.Equal(1, animals.GetPosition(a4));
            Assert.Equal(a4, c2.LeftAnimal);
            Assert.Equal(a3, c1.LeftAnimal);

            animals.SetNewPosition(a2, 1);

            Assert.Equal(1, animals.GetPosition(a2));
            Assert.Equal(2, animals.GetPosition(a3));
            Assert.Equal(3, animals.GetPosition(a4));
        }