public void GetUpdatedRedirects_BusinessIdExist_ReturnSuccessful()
        {
            var ContentfulRedirects = new ContentfulRedirectBuilder().Build();
            var collection          = new ContentfulCollection <ContentfulRedirect>();

            collection.Items = new List <ContentfulRedirect> {
                ContentfulRedirects
            };

            var redirectItem = new BusinessIdToRedirects(new Dictionary <string, string> {
                { "a-url", "another-url" }
            }, new Dictionary <string, string> {
                { "some-url", "another-url" }
            });

            var builder = new QueryBuilder <ContentfulRedirect>().ContentTypeIs("redirect").Include(1);

            _client.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulRedirect> >(q => q.Build() == builder.Build()),
                                            It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            var repository = new RedirectsRepository(_contentfulClientManager.Object, _createConfig.Object, new RedirectBusinessIds(new List <string> {
                "unittest"
            }), _contenfulFactory.Object, _shortUrlRedirects, _legacyUrlRedirects);

            _contenfulFactory.Setup(o => o.ToModel(ContentfulRedirects)).Returns(redirectItem);

            var response = AsyncTestHelper.Resolve(repository.GetUpdatedRedirects());

            var redirects = response.Get <Redirects>();

            var shortUrls = redirects.ShortUrlRedirects;

            shortUrls.Count.Should().Be(1);
            shortUrls.Keys.First().Should().Be("unittest");
            shortUrls["unittest"].ContainsKey("a-url").Should().BeTrue();
            var legacyUrls = redirects.LegacyUrlRedirects;

            legacyUrls.Count.Should().Be(1);
            legacyUrls.Keys.First().Should().Be("unittest");
            legacyUrls["unittest"].ContainsKey("some-url").Should().BeTrue();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
        public void GetRedirect_StatusCodeSuccessful_WhenLegacyOrShortUrlAreAvailable()
        {
            var shortItems = new Dictionary <string, RedirectDictionary> {
                { "unittest", new RedirectDictionary {
                      { "/short-test", "short-redirect-url" }
                  } }
            };
            var legacyItems = new Dictionary <string, RedirectDictionary> {
                { "unittest", new RedirectDictionary {
                      { "/legacy-test", "legacy-redirect-url" }
                  } }
            };

            _shortUrlRedirects.Redirects  = shortItems;
            _legacyUrlRedirects.Redirects = legacyItems;

            var repository = new RedirectsRepository(_contentfulClientManager.Object, _createConfig.Object, new RedirectBusinessIds(new List <string> {
                "unittest"
            }), _contenfulFactory.Object, _shortUrlRedirects, _legacyUrlRedirects);

            var response = AsyncTestHelper.Resolve(repository.GetRedirects());

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Example #3
0
 /// <summary>
 /// Initializes this instance.
 /// </summary>
 public static void Initialize()
 {
     UrlNormalizer.Initialize();
     redirectsRepository = new RedirectsRepository();
 }
Example #4
0
 public RedirectsController(ResponseHandler handler,
                            RedirectsRepository repository)
 {
     _handler    = handler;
     _repository = repository;
 }