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); }
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); }
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); }
public void GetAllByNameAndSwag_ShouldReturnEmptyEnumeration_EmptyArena() { //Arrange IArena RA = new RoyaleArena(); //Act //Assert List <Battlecard> actual = RA .GetAllByNameAndSwag() .ToList(); CollectionAssert.AreEqual(new List <Battlecard>(), actual); }