public void NullReturnedWhenCollectionIsEmpty()
        {
            TaskBacklog taskBacklog = new TaskBacklogBuilder().AddTaskCollection().Build();

            Task dequeuedTask = taskBacklog.Dequeue();

            Assert.AreEqual(null, dequeuedTask);
        }
        public void TaskIsAddedToCollectionWhenNoTriggerIsAttached()
        {
            TaskBacklog taskBacklog = new TaskBacklogBuilder().AddTaskCollection().Build();

            Task task = new TaskBuilder().Build();

            taskBacklog.Enqueue(task);

            Assert.AreEqual(1, taskBacklog.TaskCollection.Count);
        }
        public void TaskIsRemovedFromBacklog()
        {
            Task        existingTask = new TaskBuilder().AddName("Task1").Build();
            TaskBacklog taskBacklog  = new TaskBacklogBuilder().AddTaskCollection(existingTask).Build();

            Object dequeuedTask = taskBacklog.Dequeue();

            Assert.AreEqual(0, taskBacklog.TaskCollection.Count);
            Assert.AreEqual("Task1", dequeuedTask.name);
        }
        public void GameEventTriggerFiresOnEnqueue()
        {
            GameEventFacade gameEvent   = new GameEventFacade();
            TaskBacklog     taskBacklog = new TaskBacklogBuilder().AddTaskCollection().AddOnTaskEnqueue(gameEvent).Build();

            Task task = new TaskBuilder().Build();

            taskBacklog.Enqueue(task);

            Assert.IsTrue(gameEvent.EventWasRaised);
        }
        public void FirstTaskInCollectionIsRemoved()
        {
            Task        existingTask1 = new TaskBuilder().AddName("Task123").Build();
            Task        existingTask2 = new TaskBuilder().AddName("Task2").Build();
            Task        existingTask3 = new TaskBuilder().AddName("Task3").Build();
            Task        existingTask4 = new TaskBuilder().AddName("Task4").Build();
            TaskBacklog taskBacklog   = new TaskBacklogBuilder().AddTaskCollection(existingTask1, existingTask2, existingTask3, existingTask4).Build();

            Object dequeuedTask = taskBacklog.Dequeue();

            Assert.AreEqual(3, taskBacklog.TaskCollection.Count);
            Assert.AreEqual("Task123", dequeuedTask.name);
        }
        public void TaskIsAddedToTheEndOfTheCollection()
        {
            Task        existingTask1 = new TaskBuilder().AddName("ExistingTask1").Build();
            Task        existingTask2 = new TaskBuilder().AddName("ExistingTask1").Build();
            TaskBacklog taskBacklog   = new TaskBacklogBuilder().AddTaskCollection(existingTask1, existingTask2).Build();

            Task task = new TaskBuilder().AddName("TheLastTask").Build();

            taskBacklog.Enqueue(task);

            Task lastTaskInBacklog = taskBacklog.TaskCollection[taskBacklog.TaskCollection.Count - 1];

            Assert.AreEqual(3, taskBacklog.TaskCollection.Count);
            Assert.AreEqual("TheLastTask", lastTaskInBacklog.name);
        }