コード例 #1
0
        public async Task Given_ShortUrl_When_ExpandAsync_Invoked_Then_It_Should_Return_Result(string hostname, string shortUrl, string original)
        {
            var shorten = new Mock <ShortenUrlSettings>();

            shorten.SetupGet(p => p.Hostname).Returns(hostname);

            var settings = this._mocker.CreateAppSettingsInstance();

            settings.SetupGet(p => p.ShortenUrl).Returns(shorten.Object);

            var item = new UrlItemEntity()
            {
                ShortUrl    = shortUrl,
                OriginalUrl = new Uri(original)
            };

            var query = new Mock <IQuery>();

            query.Setup(p => p.GetUrlItemEntityAsync(It.IsAny <string>())).ReturnsAsync(item);

            var command = new Mock <ICommand>();

            var service = new ExpanderService(settings.Object, query.Object, command.Object);

            var payload = new ExpanderRequest()
            {
                ShortUrl = shortUrl
            };

            var result = await service.ExpandAsync(payload).ConfigureAwait(false);

            result.ShortUrl.Should().Be(shortUrl);
            result.Original.ToString().TrimEnd('/').Should().Be(original.TrimEnd('/'));
            result.Shortened.ToString().TrimEnd('/').Should().Be($"https://{hostname}/{shortUrl}");
        }
コード例 #2
0
        public async Task Given_ShortUrl_When_UpsertAsync_With_VisitItemEntity_Invoked_Then_It_Should_Return_Result(HttpStatusCode statusCode)
        {
            var settings = this._mocker.CreateAppSettingsInstance();

            var item = new VisitItemEntity()
            {
                UrlId = Guid.NewGuid()
            };
            var query = new Mock <IQuery>();

            var command = new Mock <ICommand>();

            command.Setup(p => p.UpsertItemEntityAsync <VisitItemEntity>(It.IsAny <VisitItemEntity>())).ReturnsAsync((int)statusCode);

            var service = new ExpanderService(settings.Object, query.Object, command.Object);

            var payload = new ExpanderResponse()
            {
                EntityId      = Guid.NewGuid(),
                UrlId         = Guid.NewGuid(),
                DateGenerated = DateTimeOffset.UtcNow,
                DateUpdated   = DateTimeOffset.UtcNow
            };

            var result = await service.UpsertAsync <VisitItemEntity>(payload).ConfigureAwait(false);

            result.Should().Be((int)statusCode);
        }
コード例 #3
0
        public void Given_Null_When_ExpandAsync_Invoked_Then_It_Should_Throw_Exception()
        {
            var settings = this._mocker.CreateAppSettingsInstance();
            var query    = new Mock <IQuery>();
            var command  = new Mock <ICommand>();

            var service = new ExpanderService(settings.Object, query.Object, command.Object);

            Func <Task> func = async() => await service.ExpandAsync(null).ConfigureAwait(false);

            func.Should().Throw <ArgumentNullException>();
        }