示例#1
0
        public void Test_Add_ObjectsWithSameBeat()
        {
            var list = new BeatObjectList <BPM>();

            list.Add(new BPM(100, 0));
            Assert.Throws <ArgumentException>(() => list.Add(new BPM(200, 0)));
        }
示例#2
0
        public void Test_Remove_ObjectDoesNotExist()
        {
            var list = new BeatObjectList <BPM>();
            var bpm  = new BPM(100, 0);

            Assert.IsFalse(list.Remove(bpm));
        }
示例#3
0
        public void Test_Remove_ObjectExists()
        {
            var list = new BeatObjectList <BPM>();
            var bpm  = new BPM(100, 0);

            list.Add(bpm);
            Assert.IsTrue(list.Remove(bpm));
            Assert.AreEqual(0, list.Count);
        }
示例#4
0
        public void Test_Clear_ClearsList()
        {
            var list = new BeatObjectList <BPM>();

            list.Add(new BPM(100, 0));
            list.Add(new BPM(100, 5));
            list.Clear();

            Assert.AreEqual(0, list.Count);
        }
示例#5
0
        public void Test_AddMultiple_ContainsNull()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 5),
                null,
                new BPM(100, 2),
            };

            Assert.Throws <ArgumentNullException>(() => list.AddMultiple(objects));
        }
示例#6
0
        public void Test_Add_InsertsObject()
        {
            var list = new BeatObjectList <BPM>();
            var bpm  = new BPM(100, 0);

            list.Add(bpm);
            Assert.AreEqual(1, list.Count);

            var array = list.ToArray();

            Assert.AreSame(array[0], bpm);
        }
示例#7
0
        public void Test_Clear_FiresClearedEvent()
        {
            var list = new BeatObjectList <BPM>();

            list.Add(new BPM(100, 0));
            list.Add(new BPM(100, 5));

            var calls = 0;

            list.Cleared += delegate { calls++; };
            list.Clear();

            Assert.AreEqual(1, calls);
            Assert.AreEqual(0, list.Count);
        }
示例#8
0
        public void Test_Add_FiresAddedEvent()
        {
            var list  = new BeatObjectList <BPM>();
            var bpm   = new BPM(100, 0);
            var calls = 0;

            list.Added += (o, e) =>
            {
                var args = e as ObjectListEventArgs <BPM>;
                Assert.AreSame(bpm, args.Object);
                calls++;
            };

            list.Add(bpm);
            Assert.AreEqual(calls, 1);
        }
示例#9
0
        public void Test_Contains_ObjectExists()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 2),
                new BPM(100, 3),
                new BPM(100, 5),
            };

            list.AddMultiple(objects);

            foreach (var o in objects)
            {
                Assert.IsTrue(list.Contains(o));
            }
        }
示例#10
0
        public void Test_AddMultiple_ObjectsOutOfOrder()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 5),
                new BPM(100, 3),
                new BPM(100, 2),
            };

            list.AddMultiple(objects);

            var array = list.ToArray();

            Assert.AreSame(objects[2], array[0]);
            Assert.AreSame(objects[1], array[1]);
            Assert.AreSame(objects[0], array[2]);
        }
示例#11
0
        public void Test_Contains_ObjectDoesNotExist()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 2),
                new BPM(100, 3),
                new BPM(100, 5),
            };

            list.AddMultiple(objects);

            // New object isn't in the list.
            Assert.IsFalse(list.Contains(new BPM(123, 45)));

            // Copy of the first element added. Tests that it's checking the reference
            // and not the value.
            Assert.IsFalse(list.Contains(new BPM(100, 2)));
        }
示例#12
0
        public void Test_ToArray_NonEmptyList()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 2),
                new BPM(100, 3),
                new BPM(100, 5),
            };

            list.AddMultiple(objects);

            var array = list.ToArray();

            Assert.AreEqual(objects.Length, array.Length);
            Assert.AreSame(objects[0], array[0]);
            Assert.AreSame(objects[1], array[1]);
            Assert.AreSame(objects[2], array[2]);
        }
示例#13
0
        public void Test_AddMultiple_FiresAddedEvents()
        {
            var list    = new BeatObjectList <BPM>();
            var objects = new BPM[] {
                new BPM(100, 5),
                new BPM(100, 3),
                new BPM(100, 2),
            };
            var added = new List <BPM>();

            list.Added += (o, e) =>
            {
                var args = e as ObjectListEventArgs <BPM>;
                added.Add(args.Object);
            };

            list.AddMultiple(objects);
            Assert.AreSame(objects[2], added[0]);
            Assert.AreSame(objects[1], added[1]);
            Assert.AreSame(objects[0], added[2]);
        }
示例#14
0
        public void Test_Remove_FiresRemovedEvent()
        {
            var list        = new BeatObjectList <BPM>();
            var removedList = new List <BPM>();
            var bpm         = new BPM(100, 0);

            list.Add(bpm);
            list.Removed += (o, e) =>
            {
                var args = e as ObjectListEventArgs <BPM>;
                removedList.Add(args.Object);
            };

            list.Remove(new BPM(100, 0));

            // Verify the event doesn't fire when an equivalent but different object is removed.
            Assert.IsEmpty(removedList);

            list.Remove(bpm);

            Assert.AreEqual(1, removedList.Count);
            Assert.AreSame(bpm, removedList[0]);
        }
示例#15
0
        public void Test_RemoveAtBeat_FiresRemovedEvent()
        {
            var list        = new BeatObjectList <BPM>();
            var removedList = new List <BPM>();
            var bpm         = new BPM(100, 0);

            list.Add(bpm);
            list.Removed += (o, e) =>
            {
                var args = e as ObjectListEventArgs <BPM>;
                removedList.Add(args.Object);
            };

            list.RemoveAtBeat(bpm.Beat.Value + 100);

            // Verify the event wasn't fired when no object is removed.
            Assert.IsEmpty(removedList);

            list.RemoveAtBeat(bpm.Beat);

            Assert.AreEqual(1, removedList.Count);
            Assert.AreSame(bpm, removedList[0]);
        }
示例#16
0
        public void Test_RemoveAtBeat_CantBeNull()
        {
            var list = new BeatObjectList <BPM>();

            Assert.Throws <ArgumentNullException>(() => list.RemoveAtBeat(null));
        }
示例#17
0
        public void Test_Contains_NullReturnsFalse()
        {
            var list = new BeatObjectList <BPM>();

            Assert.IsFalse(list.Contains(null));
        }
示例#18
0
        public void Test_AddMultiple_CantBeNull()
        {
            var list = new BeatObjectList <BPM>();

            Assert.Throws <ArgumentNullException>(() => list.AddMultiple(null));
        }
示例#19
0
        public void Test_RemoveAtBeat_ObjectDoesNotExist()
        {
            var list = new BeatObjectList <BPM>();

            Assert.IsFalse(list.RemoveAtBeat(0));
        }
示例#20
0
        public void Test_ToArray_EmptyList()
        {
            var list = new BeatObjectList <BPM>();

            Assert.IsEmpty(list.ToArray());
        }