public void AddEmployeeToRepository()
        {
            var employeeRepository = new Mock <EmployeeRepository>();
            var companyService     = new ProductionCompanyService(employeeRepository.Object);
            var companyId          = Guid.NewGuid();
            var employeeId         = Guid.NewGuid();

            companyService.AddEmployee(companyId, employeeId);
            employeeRepository.Verify(it => it.Add(companyId, employeeId));
        }
        public void ReturnTheCompanyIdForAGivenEmployee()
        {
            var employeeRepository = new Mock <EmployeeRepository>();
            var companyService     = new ProductionCompanyService(employeeRepository.Object);
            var companyId          = Guid.NewGuid();
            var employeeId         = Guid.NewGuid();

            employeeRepository.Setup(it => it.GetCompanyFor(employeeId)).Returns(companyId);

            Assert.Equal(companyId, companyService.FindCompanyByEmployee(employeeId));
        }
        public BookASingleRoomFeature()
        {
            companyService = new ProductionCompanyService(inMemoryEmployeeRepository);
            var bookingPolicyRepository = new InMemoryBookingPolicyRepository();

            bookingPolicyService = new ProductionBookingPolicyService(bookingPolicyRepository, companyService);
            HotelRepository hotelRepository = new InMemoryHotelRepository();

            hotelService   = new ProductionHotelService(hotelRepository);
            bookingService = new BookingService(hotelService, bookingRepository, bookingPolicyService, productionIdGenerator);
            bookingServiceWithStubbedIdGenerator = new BookingService(hotelService, bookingRepository, bookingPolicyService, mockIdGenerator.Object);
        }