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)))); }
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)); } }