public void _7_1_CallCenter_WithTimeBetweenCalls_ShouldHandleCallsSuccessfully()
        {
            //Arrange
            List <Employee> employees  = new List <Employee>();
            Employee        respondent = new Respondent();

            employees.Add(respondent);

            Call call1 = new Call("Billy", "123-1232");
            Call call2 = new Call("Bob", "123-1233");

            //Act
            CallCenter testCallCenter = new CallCenter(employees);

            testCallCenter.DispatchCall(call1);

            //The call is complete and the employee can take another call
            testCallCenter.AddEmployeeBackToQueue(respondent);

            testCallCenter.DispatchCall(call2);

            //Assert
            Assert.AreEqual(true, call1.IsCompleted);
            Assert.AreEqual(true, call2.IsCompleted);
        }
        public void _7_1_CallCenter_WithManagableIncomingCalls_ShouldEscalateCallsSuccessfully()
        {
            //Arrange
            List <Employee> employees  = new List <Employee>();
            Employee        respondent = new Respondent();
            Employee        manager    = new Manager();
            Employee        director   = new Director();

            employees.Add(respondent);
            employees.Add(manager);
            employees.Add(director);

            List <Call> incomingCalls = new List <Call>();
            Call        call1         = new Call("Billy", "123-1232");
            Call        call2         = new Call("Bob", "123-1233");
            Call        call3         = new Call("Jim", "123-1234");

            incomingCalls.Add(call1);
            incomingCalls.Add(call2);
            incomingCalls.Add(call3);

            //Act
            CallCenter testCallCenter = new CallCenter(employees);

            foreach (Call call in incomingCalls)
            {
                testCallCenter.DispatchCall(call);
            }

            //Assert
            foreach (Call call in incomingCalls)
            {
                Assert.AreEqual(true, call.IsCompleted);
            }
        }
        public void _7_1_CallCenter_WithTooManyCall_ShouldThrowException()
        {
            //Arrange
            List <Employee> employees  = new List <Employee>();
            Employee        respondent = new Respondent();

            employees.Add(respondent);

            Call call1 = new Call("Billy", "123-1232");
            Call call2 = new Call("Bob", "123-1233");

            //Act
            CallCenter testCallCenter = new CallCenter(employees);

            testCallCenter.DispatchCall(call1);

            //Assert
            Assert.Throws <Exception>(() => testCallCenter.DispatchCall(call2));
        }