public void Queue_stays_in_order_after_dequeue_in_middle() { // Arrange AnimalShelter <Animal> testQueue = new AnimalShelter <Animal>(); Dog newDog = new Dog(); Cat newCat = new Cat(); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newCat); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newCat); // Removing from center to prove the order stays the same testQueue.TakeHome <Cat>(); // Act Dog firstDog = testQueue.TakeHome <Dog>(); Dog secondDog = testQueue.TakeHome <Dog>(); Cat secondCat = testQueue.TakeHome <Cat>(); //Assert Assert.Equal("dog", firstDog.Type); Assert.Equal("dog", secondDog.Type); Assert.Equal("cat", secondCat.Type); }
public void Can_dequeue_selected_animal_is_at_front_node() { // Arrange AnimalShelter <Animal> testQueue = new AnimalShelter <Animal>(); Dog newDog = new Dog(); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newDog); // Act Dog result = testQueue.TakeHome <Dog>(); //Assert Assert.Equal("dog", result.Type); }
public void Cannnot_take_home_other_than_cat_or_dog() { // Arrange AnimalShelter <Animal> testQueue = new AnimalShelter <Animal>(); Dog newDog = new Dog(); Cat newCat = new Cat(); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newDog); // Act Cat result = testQueue.TakeHome <Cat>(); //Assert Assert.Null(result); }
public void Can_dequeue_selected_animal_is_not_at_front() { // Arrange AnimalShelter <Animal> testQueue = new AnimalShelter <Animal>(); Dog newDog = new Dog(); Cat newCat = new Cat(); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newDog); testQueue.ArriveAtShelter(newCat); // Act Cat result = testQueue.TakeHome <Cat>(); //Assert Assert.NotNull(result); Assert.Equal("cat", result.Type); }
public void Can_put_animals_into_shelter() { // Arrange AnimalShelter <Animal> testQueue = new AnimalShelter <Animal>(); Dog newDog = new Dog(); // Act testQueue.ArriveAtShelter(newDog); Animal result = testQueue.Peek(); //Assert Assert.Equal("dog", result.Type); }