private async Task <int> SetupHandlerAndHandle(string mockedShortURL, string originalURL, int?userId = null, string?desiredShortURL = null) { var mockTokenGenerator = new Mock <ITokenGenerator>(); mockTokenGenerator.Setup(x => x.GetUniqueKey()).Returns(mockedShortURL); using (var ctx = new MiniURLDbContext(DbOptions, DateTimeService)) { var request = new CreatePersistedURLCommand { URL = originalURL, UserId = userId ?? null, DesiredShortURL = desiredShortURL ?? null }; var handler = new CreatePersistedURLCommandHandler(ctx, mockTokenGenerator.Object); var result = await handler.Handle(request, new System.Threading.CancellationToken()); result.ShouldNotBeNull(); result.ShouldBeGreaterThan(0); return(result); } }
public async Task <ActionResult <int> > Create(CreatePersistedURLCommand command) { var id = await Mediator.Send(command); return(Ok(id)); }