public async Task GetByIPAsync_ShouldReturnDuplicateIPAddressException_WhenDoubleIPDetailsExists() { // Arrange string ip = "10.10.10.10"; string city = "Naxxar"; string continent = "Europe"; string country = "Malta"; double longitude = 1.123; double latitude = 1.123; int id = 1; List <IPDetailsEntity> iPDetailsEntities = new(); var detailsEntity = new IPDetailsEntity() { IP = ip, City = city, Continent = continent, Country = country, Latitude = latitude, Longitude = longitude, Id = id }; iPDetailsEntities.Add(detailsEntity); iPDetailsEntities.Add(detailsEntity); _ipManagerRepoMock.Setup(x => x.FindByIPAsync(ip)).ReturnsAsync(iPDetailsEntities); // Act var details = await _sut.GetByIPAsync(ip); // Assert Assert.AreEqual(details.IP, ip); }
public async Task UpdateAsync_ShouldUpdate_WhenExists() { // Arrange string ip = "10.10.10.10"; string city = "Naxxar"; string continent = "Europe"; string country = "Malta"; double longitude = 1.123; double latitude = 1.123; List <IPDetailsEntity> iPDetailsEntities = new List <IPDetailsEntity>() { new IPDetailsEntity() { Id = 1, IP = ip, City = city, Continent = continent, Country = country, Latitude = latitude, Longitude = longitude, }, new IPDetailsEntity() { Id = 2, IP = "20.20.20.20", City = city, Continent = continent, Country = country, Latitude = latitude, Longitude = longitude, } }; IPDetailsEntity inputIPDetailsEntity = new IPDetailsEntity() { Id = 1, IP = ip, City = "Mosta", Continent = continent, Country = country, Latitude = latitude, Longitude = longitude, }; IPDetails inputIPDetails = IPDetailsMapper.ToModel(inputIPDetailsEntity); // Expected List <IPDetailsEntity> expectedIPDetails = new List <IPDetailsEntity>() { inputIPDetailsEntity }; _ipManagerRepoMock.Setup(x => x.FindByIPAsync(ip)).ReturnsAsync(expectedIPDetails); _ipManagerRepoMock.Setup(x => x.UpdateAsync(inputIPDetailsEntity)).Returns(inputIPDetailsEntity); // Act var details = await _sut.UpdateAsync(inputIPDetails); // Assert Assert.AreEqual(inputIPDetails, details); }
public async Task SaveAsync_ShouldReturnException_WhenExists() { // Arrange string ip = "30.30.30.30"; string city = "Naxxar"; string continent = "Europe"; string country = "Malta"; double longitude = 1.123; double latitude = 1.123; IPDetails inputIPDetails = new IPDetails() { IP = ip, City = city, Continent = continent, Country = country, Latitude = latitude, Longitude = longitude, }; IPDetailsEntity inputIPDetailsEntity = IPDetailsMapper.ToEntity(inputIPDetails); // Expected List <IPDetailsEntity> expectedIPDetails = new List <IPDetailsEntity>() { inputIPDetailsEntity }; _ipManagerRepoMock.Setup(x => x.FindByIPAsync(ip)).ReturnsAsync(expectedIPDetails); _ipManagerRepoMock.Setup(x => x.AddAsync(inputIPDetailsEntity)).ReturnsAsync(inputIPDetailsEntity); // Act var details = await _sut.SaveAsync(inputIPDetails); // Assert Assert.AreEqual(inputIPDetails, details); }
// Update an IP details record in the database. Using IP as identifier public IPDetailsEntity UpdateAsync(IPDetailsEntity detailsEntity) { context.IPDetails.Update(detailsEntity); context.SaveChanges(); return(detailsEntity); }
// Add new IP details in database public async Task <IPDetailsEntity> AddAsync(IPDetailsEntity detailsEntity) { await context.AddAsync(detailsEntity); context.SaveChanges(); return(detailsEntity); }
public static IPDetails ToModel(IPDetailsEntity entity) { return(new IPDetails() { IP = entity.IP, City = entity.City, Continent = entity.Continent, Country = entity.Country, Latitude = entity.Latitude, Longitude = entity.Longitude }); }