Пример #1
0
    public void GetAllByNameAndSwag_ShouldWorkCorrectly_OnExistingName()
    {
        //Arrange
        IArena            RA       = new RoyaleArena();
        Battlecard        cd1      = new Battlecard(2, CardType.SPELL, "valq", 5, 14.8);
        Battlecard        cd2      = new Battlecard(1, CardType.SPELL, "moro", 5, 14.8);
        Battlecard        cd3      = new Battlecard(4, CardType.SPELL, "boro", 5, 15.6);
        Battlecard        cd4      = new Battlecard(3, CardType.SPELL, "toro", 5, 15.6);
        Battlecard        cd5      = new Battlecard(8, CardType.RANGED, "toro", 6, 17.8);
        List <Battlecard> expected = new List <Battlecard>()
        {
            cd1, cd2, cd3, cd5
        };

        //Act
        RA.Add(cd1);
        RA.Add(cd2);
        RA.Add(cd3);
        RA.Add(cd4);
        RA.Add(cd5);
        //Assert
        List <Battlecard> actual = RA.GetAllByNameAndSwag().ToList();

        CollectionAssert.AreEqual(expected, actual);
    }
Пример #2
0
    public void GetAllByNameAndSwag_ShouldWorkCorrectly_AfterRemove()
    {
        //Arrange
        IArena            RA       = new RoyaleArena();
        Battlecard        cd1      = new Battlecard(2, CardType.SPELL, "pesho", 5, 14.8);
        Battlecard        cd2      = new Battlecard(1, CardType.SPELL, "pesho", 5, 14.9);
        Battlecard        cd3      = new Battlecard(4, CardType.SPELL, "maru", 5, 15.6);
        Battlecard        cd4      = new Battlecard(3, CardType.SPELL, "pesho", 5, 15.6);
        Battlecard        cd5      = new Battlecard(8, CardType.RANGED, "pesho", 5, 17.8);
        List <Battlecard> expected = new List <Battlecard>()
        {
            cd2, cd3
        };

        //Act
        RA.Add(cd1);
        RA.Add(cd3);
        RA.Add(cd2);
        RA.Add(cd4);
        RA.Add(cd5);
        RA.RemoveById(8);
        RA.RemoveById(3);
        //Assert
        List <Battlecard> actual = RA.GetAllByNameAndSwag().ToList();

        CollectionAssert.AreEqual(expected, actual);
    }
Пример #3
0
    public void GetAllByNameAndSwag_ShouldWorkFast()
    {
        IArena ar = new RoyaleArena();
        Dictionary <string, Battlecard> max = new Dictionary <string, Battlecard>();

        CardType[] statuses = new CardType[]
        {
            CardType.MELEE,
            CardType.RANGED,
            CardType.SPELL,
            CardType.BUILDING
        };
        Random    rand = new Random();
        Stopwatch sw   = new Stopwatch();

        for (int i = 0; i < 100000; i++)
        {
            int        status = rand.Next(0, 4);
            string     name   = rand.Next(0, 200).ToString();
            CardType   TS     = statuses[status];
            Battlecard cd     = new Battlecard(i, TS,
                                               name, i, i);

            if (!max.ContainsKey(name))
            {
                max.Add(name, cd);
            }
            if (max[name].Swag <= cd.Swag)
            {
                max[name] = cd;
            }

            ar.Add(cd);
        }
        int count = ar.Count;

        Assert.AreEqual(100000, count);
        Stopwatch watch = new Stopwatch();

        watch.Start();
        for (int i = 0; i < 10; i++)
        {
            IEnumerable <Battlecard> all = ar.GetAllByNameAndSwag();
            foreach (var item in all)
            {
                Assert.AreSame(max[item.Name], item);
            }
        }
        watch.Stop();
        long l1 = watch.ElapsedMilliseconds;

        Assert.Less(l1, 150);
    }
Пример #4
0
    public void GetAllByNameAndSwag_ShouldReturnEmptyEnumeration_EmptyArena()
    {
        //Arrange
        IArena RA = new RoyaleArena();
        //Act
        //Assert
        List <Battlecard> actual = RA
                                   .GetAllByNameAndSwag()
                                   .ToList();

        CollectionAssert.AreEqual(new List <Battlecard>(), actual);
    }