public void SaveNewAttendeeToWorkshopWithNoExistingAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
            };
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(_spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "idNum3029";

            var response = toggleAttendance.Execute(payload);

            _spy.lastSavedWorkshop.attendees[0].Should().Be("Bogdan");
            findSpyStub.lastWorkShopId.Should().Be("idNum3029");
            response.Should().Be("Confirmed");
        }
        public void SaveNewAttendeeToWorkshopWithNoExistingAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
            };
            SpyGateway spy = new SpyGateway();
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "Seaweed on holiday";
            var response = toggleAttendance.Execute(payload);

            Assert.AreEqual("Seaweed", spy.lastSavedWorkshop.attendees[0]);
            Assert.AreEqual("Confirmed", response);
            Assert.AreEqual("Seaweed on holiday", findSpyStub.lastWorkShopId);
        }
        public void RemovesAttendeeIfAlreadyInWorkshopAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
                {
                    "Cait", "Maria"
                }
            };
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(_spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "16";
            toggleAttendance.Execute(payload);

            _spy.lastSavedWorkshop.attendees.Should().NotContain("Maria");
            findSpyStub.lastWorkShopId.Should().Be("16");
        }
        public void RemovesAttendeeIfAlreadyInWorkshopAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
                {
                    "Cait", "Maria"
                }
            };
            SpyGateway spy = new SpyGateway();
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "16";
            toggleAttendance.Execute(payload);
            Assert.IsFalse(spy.lastSavedWorkshop.attendees.Contains("Maria"));
            Assert.AreEqual("16", findSpyStub.lastWorkShopId);
        }
        public void SaveNewAttendeeToWorkshopWithExistingAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
                {
                    "Cait"
                }
            };
            SpyGateway spy = new SpyGateway();
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "16";
            toggleAttendance.Execute(payload);
            Assert.AreEqual("Seaweed", spy.lastSavedWorkshop.attendees[1]);
            Assert.AreEqual("Cait", spy.lastSavedWorkshop.attendees[0]);
            Assert.AreEqual("16", findSpyStub.lastWorkShopId);
        }
        public void SaveNewAttendeeToWorkshopWithExistingAttendees()
        {
            FindSpyStub findSpyStub = new FindSpyStub();

            findSpyStub.existingWorkshop = new Workshop()
            {
                attendees = new List <string>()
                {
                    "Cait"
                }
            };
            ToggleWorkshopAttendance        toggleAttendance = new ToggleWorkshopAttendance(_spy, findSpyStub);
            ToggleWorkshopAttendanceRequest payload          = new ToggleWorkshopAttendanceRequest();

            payload.User       = "******";
            payload.WorkshopId = "id16";
            toggleAttendance.Execute(payload);

            var workshopAttendees = _spy.lastSavedWorkshop.attendees;

            workshopAttendees[0].Should().Be("Cait");
            workshopAttendees[1].Should().Be("Bogdan");
            findSpyStub.lastWorkShopId.Should().Be("id16");
        }