public async Task MapsPriorityCorrectly(string expectedDrsCode) { var workOrder = _workOrderGenerator.Generate(); _sorPriorityGatewayMock.Setup(m => m.GetLegacyPriorityCode(It.IsAny <int>())).ReturnsAsync(expectedDrsCode); var sorCodes = SetupSorCodes(workOrder); var request = await _classUnderTest.BuildCreateOrderRequest(_sessionId, workOrder); VerifyCreateOrder(request, workOrder, sorCodes); request.createOrder1.theOrder.priority.Should().Be(expectedDrsCode.ToString()); }
public async Task StoresExternalSchedulerRef() { const int newId = 1; const string expectedTokenId = "externalRef"; _repairsGatewayMock.ReturnWOId(newId); ContractorUsesExternalScheduler(true); _notificationMock.AddHandler <WorkOrderOpened>(workOrderOpened => { workOrderOpened.TokenId = expectedTokenId; }); var generator = new Helpers.StubGeneration.Generator <WorkOrder>() .AddInfrastructureWorkOrderGenerators() .AddValue(new List <Trade> { new Trade { Code = TradeCode.B2 } }, (WorkElement we) => we.Trade); var workOrder = generator.Generate(); var result = await _classUnderTest.Execute(workOrder); workOrder.ExternalSchedulerReference.Should().Be(expectedTokenId); _repairsGatewayMock.VerifyChangesSaved(); }
private order GenerateDrsOrder(int expectedOrderNumber) { var index = 1; var bookingCodesGenerator = new Helpers.StubGeneration.Generator <bookingCode[]>() .AddDefaultGenerators() .AddValue(_fixture.Create <int>().ToString(), (bookingCode bc) => bc.quantity) .AddValue(_fixture.Create <int>().ToString(), (bookingCode bc) => bc.standardMinuteValue) .AddValue(_fixture.Create <int>().ToString(), (bookingCode bc) => bc.itemValue) .AddValue(expectedOrderNumber.ToString(), (bookingCode bc) => bc.primaryOrderNumber) .AddGenerator(() => (index++).ToString(), (bookingCode bc) => bc.itemNumberWithinBooking); var generator = new Helpers.StubGeneration.Generator <order>() .AddDefaultGenerators() .AddGenerator(() => { index = 1; return(bookingCodesGenerator.Generate()); }) .AddValue(expectedOrderNumber.ToString(), (order o) => o.primaryOrderNumber) .AddValue(expectedOrderNumber.ToString(), (booking b) => b.primaryOrderNumber) .AddValue(expectedOrderNumber.ToString(), (resource r) => r.primaryOrderNumber) .AddValue(orderStatus.PLANNED, (order o) => o.status) .Ignore((order o) => o.phone) .Ignore((booking b) => b.theOrder); var drsOrder = generator.Generate(); drsOrder.orderCommentsExtended = _locationAlerts.Alerts.ToCommentsExtendedString() + _personAlerts.Alerts.ToCommentsExtendedString(); return(drsOrder); }
public async Task ReturnsResponse() { // arrange var generatedWorkOrders = _generator.GenerateList(5); var expectedWorkOrder = _generator.Generate(); expectedWorkOrder.Id = 7; generatedWorkOrders.Add(expectedWorkOrder); var appointment = new AppointmentDetails { Date = DateTime.UtcNow, Description = "test", End = DateTime.UtcNow, Start = DateTime.UtcNow }; _repairsGatewayMock.ReturnsWorkOrders(generatedWorkOrders); _appointmentsGatewayMock.Setup(a => a.GetAppointment(It.IsAny <int>())).ReturnsAsync(appointment); var items = MockTasks(); var expectedTotalSMVs = items.Sum(i => i.StandardMinuteValue * i.Quantity); // act var response = await _classUnderTest.Execute(expectedWorkOrder.Id); // assert var expectedResponse = expectedWorkOrder.ToResponse(appointment, _drsOptions.ManagementAddress, true); expectedResponse.TotalSMVs = expectedTotalSMVs; response.Should().BeEquivalentTo(expectedResponse); }
public async Task SetsRSIToOriginalTrue() { var generator = new Helpers.StubGeneration.Generator <WorkOrder>() .AddInfrastructureWorkOrderGenerators() .AddValue(new List <Trade> { new Trade { Code = TradeCode.B2 } }, (WorkElement we) => we.Trade); var workOrder = generator.Generate(); await _classUnderTest.Execute(workOrder); _repairsGatewayMock.LastWorkOrder.WorkElements.All(we => we.RateScheduleItem.All(rsi => rsi.Original)) .Should().BeTrue(); }
public async Task SetsExternalFlagOnResultWhenContractorHasDrsEnabled() { int newId = 1; _repairsGatewayMock.ReturnWOId(newId); ContractorUsesExternalScheduler(true); var generator = new Helpers.StubGeneration.Generator <WorkOrder>() .AddInfrastructureWorkOrderGenerators() .AddValue(new List <Trade> { new Trade { Code = TradeCode.B2 } }, (WorkElement we) => we.Trade); var workOrder = generator.Generate(); var result = await _classUnderTest.Execute(workOrder); result.ExternallyManagedAppointment.Should().BeTrue(); }