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);
 }
예제 #7
0
 public void Save(SalesRoster salesRoster) => this.salesRoster = salesRoster;