public void AssignCustomer_DoesNotSaveSalesRoster_WhenSalespersonNotAssigned() { // Arrange var salespeople = Enumerable.Empty <Salesperson>(); var salesRoster = new SalesRoster(salespeople); var repo = new FakeSalesRosterRepository(salesRoster); var sut = new CustomerAssignmentService(repo, Policy.NoOp()); var customer = new Customer("Bob", true); // Act var assignedSalesperson = sut.AssignCustomer(customer); // Assert repo.SavedSalesRosters.Count().Should().Be(0); }
public void AssignCustomer_ReturnsNull_WhenNoSalespersonAvailable() { // Arrange var salespeople = Enumerable.Empty <Salesperson>(); var salesRoster = new SalesRoster(salespeople); var repo = new FakeSalesRosterRepository(salesRoster); var sut = new CustomerAssignmentService(repo, Policy.NoOp()); var customer = new Customer("Bob", true); // Act var assignedSalesperson = sut.AssignCustomer(customer); // Assert assignedSalesperson.Should().BeNull(); }
public void DefaultRuleset_PicksCorrectSalesperson_AccordingToProvidedTestCases( bool speaksGreek, CarType?soughtCarType, string[] acceptableNames) { // Arrange var salespeople = JsonConvert.DeserializeObject <IEnumerable <Salesperson> >(fixture.SalespersonJson); var sut = new SalesRoster(salespeople); var customer = new Customer("Bob", speaksGreek, soughtCarType); // Act var salesperson = sut.TryAssignCustomer(customer, SalespersonAssigningRuleset.Default); // Assert salesperson.Should().NotBeNull(); acceptableNames.Should().Contain(salesperson !.Name); }
public void AssignCustomer_SavesSalesRoster_WhenSalespersonAssigned() { // Arrange var salesPerson = new Salesperson("Alice", Group.A); var salespeople = new List <Salesperson> { salesPerson }; var salesRoster = new SalesRoster(salespeople); var repo = new FakeSalesRosterRepository(salesRoster); var sut = new CustomerAssignmentService(repo, Policy.NoOp()); var customer = new Customer("Bob", true); // Act var assignedSalesperson = sut.AssignCustomer(customer); // Assert repo.SavedSalesRosters.Count().Should().Be(1); }
public FakeSalesRosterRepository(SalesRoster salesRosterToReturn) { SalesRosterToReturn = salesRosterToReturn; }
public void Save(SalesRoster salesRoster) { savedSalesRosters.Add(salesRoster); }
public void Save(SalesRoster salesRoster) => this.salesRoster = salesRoster;