public void Can_Get_Geolocation_Details_By_URL()
        {
            // Arrange
            GeolocationDetails sampleModel = new GeolocationDetails()
            {
                URL = "sample URL"
            };
            GetGeolocationDetailsByUrlReturnModel sampleViewModel = new GetGeolocationDetailsByUrlReturnModel(sampleModel);

            Mock <IGeolocationDetailsManager> mockManager = new Mock <IGeolocationDetailsManager>();

            mockManager.Setup(x => x.GetByUrl(It.IsAny <string>())).Returns(sampleViewModel);

            Mock <ILocationValidator> mockLocationValidator = new Mock <ILocationValidator>();

            mockLocationValidator.Setup(x => x.IsValidUrl(It.IsAny <string>())).Returns(true);

            var controller = new GeolocationController(mockManager.Object, mockLocationValidator.Object);

            // Act
            var actionResult = controller.Get(null, "url") as OkNegotiatedContentResult <GetGeolocationDetailsByUrlReturnModel>;

            // Assert
            Assert.IsNotNull(actionResult);
            Assert.AreEqual("sample URL", actionResult.Content.URL);
        }
        public void Can_Get_Geolocation_Details_By_IP()
        {
            // Arrange
            GeolocationDetails sampleModel = new GeolocationDetails()
            {
                IP = "sample IP"
            };
            GetGeolocationDetailsByIpReturnModel sampleViewModel = new GetGeolocationDetailsByIpReturnModel(sampleModel);

            Mock <IGeolocationDetailsManager> mockManager = new Mock <IGeolocationDetailsManager>();

            mockManager.Setup(x => x.GetByIp(It.IsAny <string>())).Returns(sampleViewModel);

            Mock <ILocationValidator> mockLocationValidator = new Mock <ILocationValidator>();

            mockLocationValidator.Setup(x => x.IsValidIpAddress(It.IsAny <string>())).Returns(true);

            var controller = new GeolocationController(mockManager.Object, mockLocationValidator.Object);

            // Act
            var actionResult = controller.Get("ip", null) as OkNegotiatedContentResult <GetGeolocationDetailsByIpReturnModel>;

            // Assert
            Assert.IsNotNull(actionResult);
            Assert.AreEqual("sample IP", actionResult.Content.IP);
        }
        public void Can_Return_BadRequest_When_No_IP_URL_Provided()
        {
            // Arrange
            Mock <IGeolocationDetailsManager> mockManager           = new Mock <IGeolocationDetailsManager>();
            Mock <ILocationValidator>         mockLocationValidator = new Mock <ILocationValidator>();

            var controller = new GeolocationController(mockManager.Object, mockLocationValidator.Object);

            // Act
            var actionResult = controller.Get(null, null) as BadRequestErrorMessageResult;

            // Assert
            Assert.IsNotNull(actionResult);
            Assert.IsNotNull(actionResult.Message);
        }
        public void Can_Return_BadRequest_When_Invalid_URL_Provided()
        {
            // Arrange
            Mock <IGeolocationDetailsManager> mockManager = new Mock <IGeolocationDetailsManager>();

            Mock <ILocationValidator> mockLocationValidator = new Mock <ILocationValidator>();

            mockLocationValidator.Setup(x => x.IsValidUrl(It.IsAny <string>())).Returns(false);

            var controller = new GeolocationController(mockManager.Object, mockLocationValidator.Object);

            // Act
            var actionResult = controller.Get(null, "url") as BadRequestErrorMessageResult;

            // Assert
            Assert.IsNotNull(actionResult);
            Assert.IsNotNull(actionResult.Message);
        }
        public void Can_Return_NotFound_When_URL_Nonexistent()
        {
            // Arrange
            Mock <IGeolocationDetailsManager> mockManager = new Mock <IGeolocationDetailsManager>();

            mockManager.Setup(x => x.GetByUrl(It.IsAny <string>())).Returns <GetGeolocationDetailsByUrlReturnModel>(null);

            Mock <ILocationValidator> mockLocationValidator = new Mock <ILocationValidator>();

            mockLocationValidator.Setup(x => x.IsValidUrl(It.IsAny <string>())).Returns(true);

            var controller = new GeolocationController(mockManager.Object, mockLocationValidator.Object);

            // Act
            var actionResult = controller.Get(null, "url") as NotFoundResult;

            // Assert
            Assert.IsNotNull(actionResult);
        }
Exemplo n.º 6
0
 public void ThrowsExcepionWhenGettingGeolocationOnEmptyDb()
 {
     Assert.Throws <LocationApiEntityNotFoundException>(() => controller.Get("1.1.1.1").GetAwaiter().GetResult());
 }