public async Task AddSmsGateway_WhenApiKeyDoesNotExistYet_ShouldReturnSuccess() { // Arrange const int nationalSocietyId = 1; var nationalSocieties = new[] { new NationalSociety { Id = nationalSocietyId, Name = "National Society" } }; var nationalSocietiesMockDbSet = nationalSocieties.AsQueryable().BuildMockDbSet(); _nyssContextMock.NationalSocieties.Returns(nationalSocietiesMockDbSet); var gatewaySettings = new[] { new GatewaySetting { Id = 1, Name = "Name", ApiKey = "api-key", NationalSocietyId = nationalSocietyId, GatewayType = GatewayType.SmsEagle } }; var gatewaySettingsMockDbSet = gatewaySettings.AsQueryable().BuildMockDbSet(); _nyssContextMock.GatewaySettings.Returns(gatewaySettingsMockDbSet); var gatewaySettingRequestDto = new GatewaySettingRequestDto { Name = "New SMS Gateway", ApiKey = "new-api-key", GatewayType = GatewayType.SmsEagle }; // Act var result = await _smsGatewayService.Create(nationalSocietyId, gatewaySettingRequestDto); // Assert await _nyssContextMock.GatewaySettings.Received(1).AddAsync( Arg.Is <GatewaySetting>(gs => gs.Name == "New SMS Gateway" && gs.ApiKey == "new-api-key" && gs.GatewayType == GatewayType.SmsEagle)); await _nyssContextMock.Received(1).SaveChangesAsync(); var content = Arg.Any <string>(); await _smsGatewayBlobProviderMock.Received(1).UpdateApiKeys(content); result.IsSuccess.ShouldBeTrue(); result.Message.Key.ShouldBe(ResultKey.NationalSociety.SmsGateway.SuccessfullyAdded); }
public Task <Result <int> > Create(int nationalSocietyId, [FromBody] GatewaySettingRequestDto gatewaySettingRequestDto) => _smsGatewayService.Create(nationalSocietyId, gatewaySettingRequestDto);