コード例 #1
0
        public void BulkDissociateCustomerUser_ValidPayload_SuccessTransactionStatus()
        {
            //Arrange
            var customerUid = Guid.NewGuid();
            var userUid1    = Guid.NewGuid();
            var userUid2    = Guid.NewGuid();
            var userIds     = new List <Guid> {
                userUid1, userUid2
            };
            var actionUtc = DateTime.UtcNow;

            var userCustomers
                = new List <DbUserCustomer> {
                new DbUserCustomer {
                    fk_CustomerUID = customerUid, UserCustomerID = 1, fk_UserUID = userUid1
                },
                new DbUserCustomer {
                    fk_CustomerUID = customerUid, UserCustomerID = 2, fk_UserUID = userUid2
                }
                };

            transaction.Get <DbUserCustomer>(Arg.Any <string>()).Returns(userCustomers);

            var deleteQuery = $"DELETE FROM md_customer_CustomerUser WHERE UserCustomerID IN (1,2);";

            transaction.Execute(Arg.Any <List <Action> >())
            .Returns(a =>
            {
                a.Arg <List <Action> >().ForEach(action => action.Invoke());
                return(true);
            });

            //Act
            var resultData = userCustomerService
                             .BulkDissociateCustomerUser(customerUid, userIds, actionUtc);

            //Assert
            Assert.True(resultData);
            transaction.Received(1).Get <DbUserCustomer>(
                Arg.Is <string>(m => m.Contains(customerUid.ToString("N")) &&
                                m.Contains(userUid1.ToString("N")) && m.Contains(userUid2.ToString("N"))));
            transaction.Received(1).Delete(Arg.Is(deleteQuery));
            transaction.Received(1).Publish(Arg.Is <List <KafkaMessage> >(messages => messages
                                                                          .TrueForAll(m => ValidateBulkDissociateKafkaObject(m, customerUid, userIds, actionUtc))));
        }
コード例 #2
0
        public IActionResult BulkCustomerUserDissociation([FromBody] BulkDissociateCustomerUserEvent customerUser)
        {
            try
            {
                List <Guid> userList   = customerUser.UserUID;              //list of userUIDs to dissociate
                var         currentUtc = DateTime.UtcNow;
                if (userCustomerService.BulkDissociateCustomerUser(
                        customerUser.CustomerUID, userList, customerUser.ActionUTC))
                {
                    return(Ok());
                }

                logger.LogInformation(Messages.CustomerUsersDoesntExist);
                return(BadRequest(Messages.CustomerUsersDoesntExist));
            }
            catch (Exception ex)
            {
                logger.LogError(string.Format(Messages.ExceptionOccured, ex.Message, ex.StackTrace));
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }