public async Task CreateSmartUrlShouldCreateNewRecord() { var managedConfig = ConfigureManagedConfig(); var smartUriResponse = new SmartUrlEntity { Id = 1 }; var dataProviderMock = new Mock <IDataProvider>(); dataProviderMock.Setup(a => a.GetSmartUrlByHash(It.IsAny <string>())) .Returns(Task.FromResult((SmartUrlEntity)null)); dataProviderMock.Setup(a => a.GetSmartUrlByKey(It.IsAny <string>())) .Returns(Task.FromResult(smartUriResponse)); var sut = new HashKeyService(managedConfig, dataProviderMock.Object); // Act var result = await sut.CreateSmartUrl(_url); // Assert result.Id.ShouldBeEqualTo(smartUriResponse.Id); dataProviderMock.Verify(a => a.GetSmartUrlByHash(It.IsAny <string>()), Times.Once); dataProviderMock.Verify(a => a.GetSmartUrlByKey(It.IsAny <string>()), Times.Once); }
public async Task CreateSmartUrlShouldGenerateUniqueKey() { var managedConfig = ConfigureManagedConfig(); var smartUriResponse = new SmartUrlEntity { Url = _url }; var dataProviderMock = new Mock <IDataProvider>(); dataProviderMock.Setup(a => a.GetSmartUrlByHash(It.IsAny <string>())) .Returns(Task.FromResult((SmartUrlEntity)null)); dataProviderMock.Setup(a => a.GetSmartUrlByKey(It.IsAny <string>())) .Returns(Task.FromResult((SmartUrlEntity)null)); dataProviderMock.Setup(a => a.Add(It.IsAny <SmartUrlEntity>())) .Returns(Task.FromResult(0)); var sut = new HashKeyService(managedConfig, dataProviderMock.Object); // Act var result = await sut.CreateSmartUrl(string.Empty); // Assert result.ShortUrl.ShouldContain("https://localhost:44390"); dataProviderMock.Verify(a => a.GetSmartUrlByHash(It.IsAny <string>()), Times.Once); dataProviderMock.Verify(a => a.Add(It.IsAny <SmartUrlEntity>()), Times.Once); }
public async Task CreateSmartUrlShouldReturnNull() { var managedConfig = ConfigureManagedConfig(); managedConfig.Value.KeyLength = 0; var dataProviderMock = new Mock <IDataProvider>(); dataProviderMock.Setup(a => a.GetSmartUrlByHash(It.IsAny <string>())) .Returns(Task.FromResult((SmartUrlEntity)null)); dataProviderMock.Setup(a => a.GetSmartUrlByKey(It.IsAny <string>())) .Returns(Task.FromResult((SmartUrlEntity)null)); var sut = new HashKeyService(managedConfig, dataProviderMock.Object); // Act var result = await sut.CreateSmartUrl(_url); // Assert result.Id.ShouldBeEqualTo(0); dataProviderMock.Verify(a => a.GetSmartUrlByHash(It.IsAny <string>()), Times.Once); }