public async Task When_UserHasEnoughSmsLimit_SmsEventIsPushed() { using var testServer = await CreateWithUserAsync(); var user = await testServer.GetCurrentUserInSession(); var client = testServer.CreateClient(); var addSmsCreditsCommand = new AddSmsCreditsCommand(Guid.NewGuid(), user.Id, 2, false); await client.PostAsync($"{ApiPath}/add-credits", addSmsCreditsCommand.ToJsonContent()); var messages = new List <SmsMessageModel>(); for (var i = 0; i < 2; i++) { messages.Add(new SmsMessageModel("5544567788", "TEST", "TEST")); } var command = new SendSmsCommand(Guid.NewGuid(), messages); var response = await client.PostAsync(ApiPath, command.ToJsonContent()); response.EnsureSuccessStatusCode(); var @event = Consumer.Instance.GetFirst <ISendSmsRequestReceived>(); @event.UserId.Should().NotBe(default);
public async Task When_UserHasEnoughSmsLimit_SmsEventIsPushed() { using (var testServer = await CreateWithUserAsync()) { //Add Some SMS Credits var dbContext = testServer.Host.Services.GetService(typeof(ApplicationDbContext)) as ApplicationDbContext; var subjectId = (testServer.Host.Services .GetRequiredService(typeof(Claim)) as Claim).Value; var user = await dbContext.Users.FirstAsync(u => u.SubjectId == subjectId); user.AddSmsBalance(2); await dbContext.SaveChangesAsync(); var messages = new List <SmsMessageModel>(); for (var i = 0; i < 2; i++) { messages.Add(new SmsMessageModel("5544567788", "TEST", "TEST")); } var command = new SendSmsCommand(Guid.NewGuid(), messages); var response = await testServer.CreateClient().PostAsync(ApiPath, command.ToJsonContent()); response.EnsureSuccessStatusCode(); var @event = Consumer.Instance.GetFirst <ISendSmsRequestReceived>(); @event.UserId.Should().NotBe(default);
public async Task When_UsersLimitNotEnoughToSendSms_InsufficientFundError_Should_BeReturned() { using var testServer = await CreateWithUserAsync(); var client = testServer.CreateClient(); var messages = new List <SmsMessageModel>(); for (var i = 0; i < 100; i++) { messages.Add(new SmsMessageModel("5544567788", "TEST", "TEST")); } var command = new SendSmsCommand(Guid.NewGuid(), messages); var response = await client.PostAsync(ApiPath, command.ToJsonContent()); await response.Should().BeBadRequestAsync(ErrorCodes.InsufficientFunds); }