public async Task TestFirstTimeRequestLinkNotExistsWithInvalidDefRedir(LinkVerifyResult linkVerifyResult) { string inputToken = "996"; string t; _tokenGeneratorMock .Setup(p => p.TryParseToken(inputToken, out t)) .Returns(true); var link = new Link(); var memoryCache = MockMemoryCacheService.GetMemoryCache(link, false); _linkForwarderServiceMock .Setup(p => p.GetLinkAsync(null)) .ReturnsAsync(new SuccessResponse <Link>(null)); _linkVerifierMock .Setup(p => p.Verify(It.IsAny <string>(), It.IsAny <IUrlHelper>(), It.IsAny <HttpRequest>())) .Returns(linkVerifyResult); _appSettingsMock.Setup(p => p.Value).Returns(new AppSettings { DefaultRedirectionUrl = "INVALID_VALUE" }); var ctl = new ForwardController( _appSettingsMock.Object, _loggerMock.Object, _linkForwarderServiceMock.Object, _tokenGeneratorMock.Object, memoryCache, _linkVerifierMock.Object) { ControllerContext = GetHappyPathHttpContext() }; var result = await ctl.Forward(inputToken); Assert.IsInstanceOf(typeof(StatusCodeResult), result); var statusCode = ((StatusCodeResult)result).StatusCode; Assert.IsTrue(statusCode == 500); }
public async Task TestFirstTimeRequestNoDntNoTTL() { string inputToken = "996"; string t; _tokenGeneratorMock .Setup(p => p.TryParseToken(inputToken, out t)) .Returns(true); var link = new Link { IsEnabled = true, OriginUrl = "https://edi.wang" }; var memoryCache = MockMemoryCacheService.GetMemoryCache(link, false); _linkForwarderServiceMock .Setup(p => p.GetLinkAsync(null)) .ReturnsAsync(new SuccessResponse <Link>(link)); _linkVerifierMock .Setup(p => p.Verify(It.IsAny <string>(), It.IsAny <IUrlHelper>(), It.IsAny <HttpRequest>())) .Returns(LinkVerifyResult.Valid); _appSettingsMock.Setup(p => p.Value).Returns(new AppSettings { HonorDNT = false }); var ctl = new ForwardController( _appSettingsMock.Object, _loggerMock.Object, _linkForwarderServiceMock.Object, _tokenGeneratorMock.Object, memoryCache, _linkVerifierMock.Object) { ControllerContext = GetHappyPathHttpContext() }; var result = await ctl.Forward(inputToken); Assert.IsInstanceOf(typeof(RedirectResult), result); }
public async Task TestFirstTimeRequestServerError() { string inputToken = "996"; string t; _tokenGeneratorMock .Setup(p => p.TryParseToken(inputToken, out t)) .Returns(true); var link = new Link { OriginUrl = "https://996.icu" }; var memoryCache = MockMemoryCacheService.GetMemoryCache(link, false); _linkForwarderServiceMock .Setup(p => p.GetLinkAsync(null)) .ReturnsAsync(new FailedResponse <Link>(0)); var ctl = new ForwardController( _appSettingsMock.Object, _loggerMock.Object, _linkForwarderServiceMock.Object, _tokenGeneratorMock.Object, memoryCache, _linkVerifierMock.Object) { ControllerContext = GetHappyPathHttpContext() }; var result = await ctl.Forward(inputToken); Assert.IsInstanceOf(typeof(StatusCodeResult), result); var statusCode = ((StatusCodeResult)result).StatusCode; Assert.IsTrue(statusCode == 500); }
public async Task TestCacheFound() { string inputToken = "996"; string t; _tokenGeneratorMock.Setup(p => p.TryParseToken(inputToken, out t)) .Returns(true); var link = new Link { OriginUrl = "https://996.icu" }; var memoryCache = MockMemoryCacheService.GetMemoryCache(link); // var cachedResponse = memoryCache.Get<Link>(inputToken); _appSettingsMock.Setup(p => p.Value).Returns(new AppSettings() { HonorDNT = false }); var ctl = new ForwardController( _appSettingsMock.Object, _loggerMock.Object, _linkForwarderServiceMock.Object, _tokenGeneratorMock.Object, memoryCache, _linkVerifierMock.Object) { ControllerContext = GetHappyPathHttpContext() }; var result = await ctl.Forward(inputToken); Assert.IsInstanceOf(typeof(RedirectResult), result); }
public async Task TestFirstTimeRequestLinkNotExistsNoDefRedir() { string inputToken = "996"; string t; _tokenGeneratorMock .Setup(p => p.TryParseToken(inputToken, out t)) .Returns(true); var link = new Link(); var memoryCache = MockMemoryCacheService.GetMemoryCache(link, false); _linkForwarderServiceMock .Setup(p => p.GetLinkAsync(null)) .ReturnsAsync(new SuccessResponse <Link>(null)); _appSettingsMock.Setup(p => p.Value).Returns(new AppSettings { DefaultRedirectionUrl = string.Empty }); var ctl = new ForwardController( _appSettingsMock.Object, _loggerMock.Object, _linkForwarderServiceMock.Object, _tokenGeneratorMock.Object, memoryCache, _linkVerifierMock.Object) { ControllerContext = GetHappyPathHttpContext() }; var result = await ctl.Forward(inputToken); Assert.IsInstanceOf(typeof(NotFoundResult), result); }