public void EnqueueAll_Should_Fire_NotifyCollectionChanged_Add_Event_With_Input_Of_Count_One(int number, int expectedIndex)
        {
            // Arrange
            IObservablePriorityQueue <int> queue = CreateObservableInstance <int>();

            queue.EnqueueAll(new List <int>()
            {
                1, 3, 5
            });

            NotifyCollectionChangedEventArgs args = null;

            queue.CollectionChanged += (sender, e) =>
            {
                args = e;
            };

            // Act
            queue.EnqueueAll(new List <Int32>()
            {
                number
            });

            // Assert
            Assert.NotNull(args);
            Assert.Equal(args.Action, NotifyCollectionChangedAction.Add);
            Assert.Equal(args.NewStartingIndex, expectedIndex);
            Assert.Equal(args.NewItems.Count, 1);
            Assert.Equal(args.NewItems[0], number);
        }
        public void Dequeue_Should_Fire_NotifyCollectionChanged_Remove_Event()
        {
            // Arrange
            IObservablePriorityQueue <int> queue = CreateObservableInstance <int>();

            queue.EnqueueAll(new List <int>()
            {
                1, 2, 3
            });

            NotifyCollectionChangedEventArgs args = null;

            queue.CollectionChanged += (sender, e) =>
            {
                args = e;
            };

            // Act
            queue.Dequeue();

            // Assert
            Assert.NotNull(args);
            Assert.Equal(args.Action, NotifyCollectionChangedAction.Remove);
            Assert.Equal(args.OldStartingIndex, 0);
            Assert.Equal(args.OldItems[0], 1);
        }
        public void EnqueueAll_Should_Not_Fire_NotifyCollectionChanged_Event_With_Empty_Input()
        {
            // Arrange
            IObservablePriorityQueue <int> queue = CreateObservableInstance <int>();

            NotifyCollectionChangedEventArgs args = null;

            queue.CollectionChanged += (sender, e) =>
            {
                args = e;
            };

            // Act
            queue.EnqueueAll(new List <Int32>());

            // Assert
            Assert.Null(args);
        }
        public void EnqueueAll_Should_Fire_NotifyCollectionChanged_Reset_Event_With_Input_Of_Count_Greater_Than_One()
        {
            // Arrange
            IObservablePriorityQueue <int> queue = CreateObservableInstance <int>();

            NotifyCollectionChangedEventArgs args = null;

            queue.CollectionChanged += (sender, e) =>
            {
                args = e;
            };

            // Act
            queue.EnqueueAll(new List <Int32>()
            {
                1, 2
            });

            // Assert
            Assert.NotNull(args);
            Assert.Equal(args.Action, NotifyCollectionChangedAction.Reset);
        }