protected BaseFeedbackIntegrationServiceTests()
            {
                _mapper    = new TestFixture().Mapper;
                _dbBuilder = new MockDbBuilder();
                _db        = _dbBuilder
                             .WithLoads(LOADS)
                             .WithUsers(new List <UserEntity> {
                    VALID_USER, INVALID_USER
                })
                             .Build();

                _securityService = new Mock <ISecurityService>();
                _securityService.Setup(_ => _.GetAuthorizedCustomersforUserAsync()).ReturnsAsync((new List <CustomerData>()
                {
                    new CustomerData
                    {
                        CustomerId = VALID_CUSTOMER_ID
                    }
                }).AsReadOnly());

                _feedbackClient = new Mock <IFeedbackClient>();

                _userContext = new Mock <IUserContext>();
                _userContext.SetupGet(_ => _.UserId).Returns(VALID_USER_ID);
                _userContext.SetupGet(_ => _.UserName).Returns(VALID_USER_NAME);

                _config        = new Mock <IConfigurationRoot>();
                _configSection = new Mock <IConfigurationSection>();

                _svc = CreateService();
            }
Exemplo n.º 2
0
            protected BaseLoadStatusTransactionTests(TestFixture fixture)
            {
                _mapper    = fixture.Mapper;
                _dbBuilder = new MockDbBuilder();
                _db        = _dbBuilder
                             .WithLoads(LOADS)
                             .WithUsers(new List <UserEntity> {
                    VALID_CARRIER_USER, INVALID_CARRIER_USER, SHIPPER_USER
                })
                             .WithLoadStatusTransactions(LOAD_STATUS_TRANSACTIONS)
                             .Build();

                _securityService = new Mock <ISecurityService>();
                _securityService.Setup(_ => _.UserHasActionAsync(It.IsAny <string[]>())).ReturnsAsync(true);
                _securityService.Setup(_ => _.GetAuthorizedCustomersforUserAsync()).ReturnsAsync((new List <CustomerData>()
                {
                    new CustomerData
                    {
                        CustomerId = VALID_CUSTOMER_ID
                    }
                }).AsReadOnly());

                _carrierWebApiService = new Mock <ICarrierWebAPIService>();

                _userContext = new Mock <IUserContext>();
                _userContext.SetupGet(_ => _.UserId).Returns(VALID_CARRIER_USER_ID);
            }
Exemplo n.º 3
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .Build();
 }
Exemplo n.º 4
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithCustomer(CUSTOMER)
           .Build();
 }
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUserLanes(USER_LANES)
           .Build();
 }
Exemplo n.º 6
0
            public async Task SubmitsBillingLoadId()
            {
                var load = VALID_LOAD;

                load.PlatformPlusLoadId = "PLATFORM_PLUS_ID";
                load.LatestLoadTransaction.Claim.BillingLoadId = "BILLING_LOAD_ID";
                var loads = new List <LoadEntity> {
                    load
                };

                _dbBuilder = new MockDbBuilder();
                _db        = _dbBuilder
                             .WithLoads(loads)
                             .WithUsers(new List <UserEntity> {
                    VALID_CARRIER_USER
                })
                             .Build();

                var stopStatuses = new LoadStatusStopData
                {
                    LoadId = VALID_LOAD_ID,
                    Events = new List <LoadStatusStopEventData>
                    {
                        new LoadStatusStopEventData
                        {
                            StopNumber = 1,
                            EventTime  = new DateTimeOffset(new DateTime(2020, 2, 11, 10, 0, 0)),
                            EventType  = StopEventTypeEnum.Arrival
                        }
                    }
                };

                _carrierWebApiService.Setup(_ => _.Send <StopEventData>(It.IsAny <LoadStatusEvent <StopEventData> >()))
                .ReturnsAsync(new LoadStatusEvent <CarrierApiResponseMessages>
                {
                    MessageId   = Guid.Parse("44444444-4444-4444-4444-555555555555"),
                    MessageTime = new DateTimeOffset(new DateTime(2020, 2, 11, 12, 13, 14))
                });

                _svc = CreateService();

                var response = await _svc.AddStopStatuses(stopStatuses);

                response.IsSuccess.Should().BeTrue();

                _carrierWebApiService.Verify(_ => _.Send <StopEventData>(It.Is <LoadStatusEvent <StopEventData> >(
                                                                             e => e.MessageType == "LoadStopEvent" &&
                                                                             e.ApiVersion == "1.1" &&
                                                                             e.Payload.LoadNumber == "BILLING_LOAD_ID" &&
                                                                             e.Payload.StopNbr == 1 &&
                                                                             e.Payload.StatusDateTime == "2020-02-11T10:00:00" &&
                                                                             e.Payload.IsLocalTime == true &&
                                                                             e.Payload.Scac == "TEST"
                                                                             )));
            }
            public async Task ExistingUserLaneEquipmentNotOnUpdate_EquipmentRemoved()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var actual = await _svc.UpdateLaneAsync(_laneData, USER_ID, USER_NAME);

                builder.MockUserLaneEquipments.Verify(x => x.Remove(It.IsAny <UserLaneEquipmentEntity>()), Times.Exactly(2));
            }
            public async Task Shipper_Admin_HasShipper_DoesNotAddUserShipper()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var result = await _svc.UpdateFocusEntityAsync(USER_ID, USER_FOCUS_ENTITY, USERNAME);

                builder.MockUserShippers.Verify(x => x.Add(It.IsAny <UserShipperEntity>()), Times.Never);
            }
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUserLanes(USER_LANES)
           .WithMessageTypes(MESSAGE_TYPES)
           .Build();
 }
            public void UserInserted()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var actual = _svc.CreateUserProfileAsync(USER_ID, CARRIER_ID, EMAIL, USERNAME, FIRST_NAME, LAST_NAME);

                builder.MockUsers.Verify(x => x.Add(It.IsAny <UserEntity>()), Times.Once);
                _db.Verify(x => x.SaveChangesAsync(USERNAME, default), Times.Once);
            }
            public async Task UserLaneAdded()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var actual = await _svc.CreateLaneAsync(_laneData, USER_ID, USER_NAME);

                builder.MockUserLanes.Verify(x => x.Add(It.IsAny <UserLaneEntity>()), Times.Once);
                _db.Verify(x => x.SaveChangesAsync(USER_NAME, It.IsAny <CancellationToken>()), Times.Once);
            }
            public async Task NewUserLaneMessageTypesAdded()
            {
                USER_LANE_MESSAGES_TYPES = new List <UserLaneMessageTypeEntity>();
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var actual = await _svc.UpdateLaneAsync(_laneData, USER_ID, USER_NAME);

                builder.MockUserLaneMessageTypes.Verify(x => x.Add(It.IsAny <UserLaneMessageTypeEntity>()), Times.Exactly(2));
            }
Exemplo n.º 13
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUsers(USERS)
           .WithUserCarrierScacs(USER_CARRIER_SCACS)
           .WithCarrierScacs(CARRIER_SCACS)
           .Build();
 }
            public async Task UserLaneRemoved()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                await _svc.DeleteLaneAsync(USER_LANE_ID);

                builder.MockUserLanes.Verify(x => x.Remove(It.IsAny <UserLaneEntity>()), Times.Once);
                _db.Verify(x => x.SaveChangesAsync(default(CancellationToken)), Times.Once);
            }
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUserLanes(USER_LANES)
           .WithUserLaneMessageTypes(USER_LANE_MESSAGES_TYPES)
           .WithUserLaneEquipment(USER_LANE_EQUIPMENT)
           .WithUsers(USERS)
           .Build();
 }
            public async Task Shipper_Admin_DoesNotHaveShipper_UserShipperAdded()
            {
                USER_SHIPPERS = new List <UserShipperEntity>();

                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var result = await _svc.UpdateFocusEntityAsync(USER_ID, USER_FOCUS_ENTITY, USERNAME);

                builder.MockUserShippers.Verify(x => x.Add(It.IsAny <UserShipperEntity>()), Times.Once);
            }
            public async Task Shipper_NotAdmin_DoesNotAddUserShipper()
            {
                _securityService.Setup(x => x.UserHasRoleAsync(It.IsAny <string[]>())).ReturnsAsync(false);

                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var result = await _svc.UpdateFocusEntityAsync(USER_ID, USER_FOCUS_ENTITY, USERNAME);

                builder.MockUserShippers.Verify(x => x.Add(It.IsAny <UserShipperEntity>()), Times.Never);
            }
            public async Task CarrierScac_Admin_AddsUserCarrierScac()
            {
                USER_FOCUS_ENTITY = CARRIER_SCAC_ENTITY;

                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var result = await _svc.UpdateFocusEntityAsync(USER_ID, USER_FOCUS_ENTITY, USERNAME);

                builder.MockUserCarrierScacs.Verify(x => x.Add(It.IsAny <UserCarrierScacEntity>()), Times.Once);
            }
            public async Task ExistingUserLaneMessageTypesDeselected_MessageTypesRemoved()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                _laneData.UserLaneMessageTypes.ForEach(x => x.Selected = false);

                var actual = await _svc.UpdateLaneAsync(_laneData, USER_ID, USER_NAME);

                builder.MockUserLaneMessageTypes.Verify(x => x.Remove(It.IsAny <UserLaneMessageTypeEntity>()), Times.Exactly(2));
            }
Exemplo n.º 20
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUsers(USERS)
           .WithUserCarrierScacs(USER_CARRIER_SCACS)
           .WithSecurityUserAccessRoles(USER_ROLES)
           .WithSecurityAccessRoles(ROLES)
           .Build();
 }
            public async Task MissingEmailUserNotificationIsInserted()
            {
                USER.UserNotifications = new List <UserNotificationEntity>();

                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var actual = await _svc.GetUserProfileAsync(USER_ID);

                builder.MockUserNotifications.Verify(x => x.Add(It.IsAny <UserNotificationEntity>()), Times.Once);
            }
Exemplo n.º 22
0
            public async Task SubmitsBillingLoadId()
            {
                var load = VALID_LOAD;

                load.PlatformPlusLoadId = "PLATFORM_PLUS_ID";
                load.LatestLoadTransaction.Claim.BillingLoadId = "BILLING_LOAD_ID";
                var loads = new List <LoadEntity> {
                    load
                };

                _dbBuilder = new MockDbBuilder();
                _db        = _dbBuilder
                             .WithLoads(loads)
                             .WithUsers(new List <UserEntity> {
                    VALID_CARRIER_USER
                })
                             .Build();

                var inTransitStatus = new LoadStatusInTransitData
                {
                    LoadId       = VALID_LOAD_ID,
                    LocationTime = new DateTimeOffset(new DateTime(2020, 2, 11, 10, 0, 0)),
                    //Oregon
                    Latitude  = 46.161605m,
                    Longitude = -123.414906m
                };

                _carrierWebApiService.Setup(_ => _.Send <InTransitLoadData>(It.IsAny <LoadStatusEvent <InTransitLoadData> >()))
                .ReturnsAsync(new LoadStatusEvent <CarrierApiResponseMessages>
                {
                    MessageId   = Guid.Parse("44444444-4444-4444-4444-555555555555"),
                    MessageTime = new DateTimeOffset(new DateTime(2020, 2, 11, 12, 13, 14))
                });

                _svc = CreateService();

                var response = await _svc.AddInTransitStatus(inTransitStatus);

                response.IsSuccess.Should().BeTrue();

                _carrierWebApiService.Verify(_ => _.Send <InTransitLoadData>(It.Is <LoadStatusEvent <InTransitLoadData> >(
                                                                                 e => e.MessageType == "LoadLocation" &&
                                                                                 e.ApiVersion == "1.1" &&
                                                                                 e.Payload.Loads[0].LoadNumber == "BILLING_LOAD_ID" &&
                                                                                 e.Payload.Loads[0].Latitude == 46.161605m &&
                                                                                 e.Payload.Loads[0].Longitude == -123.414906m &&
                                                                                 e.Payload.Loads[0].LocationTime == "2020-02-11T10:00:00" &&
                                                                                 e.Payload.Loads[0].IsLocalTime == true
                                                                                 )));
            }
Exemplo n.º 23
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUsers(USERS)
           .WithSecurityAccessRoles(ROLES)
           .WithSecurityUserAccessRoles(USER_ACCESS_ROLES)
           .WithSecurityAccessRoleAppActions(ROLE_APP_ACTIONS)
           .WithSecurityAppActions(APP_ACTIONS)
           .Build();
 }
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUser(USER)
           .WithCarriers(CARRIERS)
           .WithUserCarrierScacs(USER_CARRIER_SCACS)
           .WithUserShippers(USER_SHIPPERS)
           .WithCarrierScacs(new List <CarrierScacEntity>())
           .Build();
 }
            public async Task MissingLoad()
            {
                _config.Setup(_ => _.GetSection(It.Is <string>(s => s == FeedbackQuestionCodeEnum.LB_ShipperReuseCarrierQuestionId.ToString()))).Returns(_configSection.Object);
                _configSection.Setup(a => a.Value).Returns("10");

                _dbBuilder = new MockDbBuilder();
                _dbBuilder.WithUser(VALID_USER);
                _db  = _dbBuilder.Build();
                _svc = CreateService();

                Func <Task> action = async() => await _svc.GetResponseAsync(
                    FeedbackQuestionCodeEnum.LB_ShipperReuseCarrierQuestionId, VALID_LOAD_ID);

                (await action.Should().ThrowAsync <Exception>()).WithMessage("Load not found");
            }
            public void CarrierScac_Admin_NotCarrierIdFound_ThrowsException()
            {
                USER_FOCUS_ENTITY = CARRIER_SCAC_ENTITY;
                CARRIERS.First().CarrierId = null;

                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                var expected = $"Cannot find Carrier for SCAC: {SCAC}";

                _svc.Awaiting(x => x.UpdateFocusEntityAsync(USER_ID, USER_FOCUS_ENTITY, USERNAME))
                .Should().Throw <Exception>()
                .WithMessage(expected);
            }
Exemplo n.º 27
0
            public async Task NoLoadStatusTransactions()
            {
                _db = new MockDbBuilder()
                      .WithLoads(LOADS)
                      .WithUsers(new List <UserEntity> {
                    VALID_CARRIER_USER
                })
                      .WithLoadStatusTransactions(new List <LoadStatusTransactionEntity>())
                      .Build();

                _svc = CreateService();

                var result = await _svc.GetLatestStatus(VALID_LOAD_ID);

                result.Should().BeNull();
            }
            public async Task UserLaneEquipmentsAdded()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                UserLaneEntity added = null;

                builder.MockUserLanes
                .Setup(x => x.Add(It.IsAny <UserLaneEntity>()))
                .Callback((UserLaneEntity x) => { added = x; });

                var actual = await _svc.CreateLaneAsync(_laneData, USER_ID, USER_NAME);

                added.UserLaneEquipments.Should().NotBeEmpty();
            }
Exemplo n.º 29
0
 private void InitDb(MockDbBuilder builder = null)
 {
     if (builder == null)
     {
         builder = new MockDbBuilder();
     }
     _db = builder
           .WithUsers(USERS)
           .WithSecurityAccessRoles(ROLES)
           .WithSecurityUserAccessRoles(USER_ACCESS_ROLES)
           .WithSecurityAccessRoleAppActions(ROLE_APP_ACTIONS)
           .WithSecurityAppActions(APP_ACTIONS)
           .WithUserCarrierScacs(USER_CARRIER_SCACS)
           .WithCarrierScacs(CARRIER_SCACS)
           .WithCustomers(CUSTOMERS)
           .WithUserShippers(USER_SHIPPERS)
           .Build();
 }
            public void UserInserted_NewUserNotificationsCreated()
            {
                var builder = new MockDbBuilder();

                InitDb(builder);
                InitService();

                UserEntity added = null;

                builder.MockUsers.Setup(x => x.Add(It.IsAny <UserEntity>())).Callback((UserEntity _) => { added = _; });

                var actual = _svc.CreateUserProfileAsync(USER_ID, CARRIER_ID, EMAIL, USERNAME, FIRST_NAME, LAST_NAME);

                added.UserNotifications.Should().HaveCount(2);
                added.UserNotifications
                .First(x => x.MessageTypeId == MessageTypeConstants.Email)
                .NotificationValue.Should().Be(EMAIL);
            }