Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        // 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);
        }
Exemplo n.º 5
0
        // Add new IP details in database
        public async Task <IPDetailsEntity> AddAsync(IPDetailsEntity detailsEntity)
        {
            await context.AddAsync(detailsEntity);

            context.SaveChanges();

            return(detailsEntity);
        }
Exemplo n.º 6
0
 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
     });
 }