public async Task SearchAsync_NoHits() { CdnjsCatalog sut = SetupCatalog(); IReadOnlyList <ILibraryGroup> absolute = await sut.SearchAsync(@"*9)_-", 1, CancellationToken.None); Assert.AreEqual(0, absolute.Count); }
public async Task SearchAsync_NullString() { CdnjsCatalog sut = Initialize(); IReadOnlyList <ILibraryGroup> absolute = await sut.SearchAsync(null, 1, CancellationToken.None); Assert.AreEqual(1, absolute.Count); }
public async Task SearchAsync_MultipleMatches() { CdnjsCatalog sut = SetupCatalog(); IReadOnlyList <ILibraryGroup> result = await sut.SearchAsync(term : "test", 5, CancellationToken.None); Assert.AreEqual(2, result.Count); Assert.AreEqual("test-library", result.First().DisplayName); Assert.AreEqual("test-library2", result.Last().DisplayName); }
public async Task SearchAsync_CacheDownloadFailsWhenNoCacheFileExists_FindsNoMatches() { var fakeCacheService = new Mock <ICacheService>(); fakeCacheService.Setup(x => x.GetContentsFromUriWithCacheFallbackAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())) .Throws(new ResourceDownloadException("Cache download failed.")); CdnjsCatalog sut = SetupCatalog(fakeCacheService.Object); IReadOnlyList <ILibraryGroup> result = await sut.SearchAsync("test", 5, CancellationToken.None); Assert.AreEqual(0, result.Count); }
public async Task SearchAsync_Success_SingleMatch(string searchTerm, string expectedId) { CdnjsCatalog sut = SetupCatalog(); IReadOnlyList <ILibraryGroup> absolute = await sut.SearchAsync(searchTerm, 2, CancellationToken.None); Assert.AreEqual(1, absolute.Count); IEnumerable <string> versions = await absolute[0].GetLibraryVersions(CancellationToken.None); Assert.IsTrue(versions.Any()); ILibrary library = await sut.GetLibraryAsync(absolute[0].DisplayName, versions.First(), CancellationToken.None); Assert.IsTrue(library.Files.Count > 0); Assert.AreEqual(expectedId, library.Name); Assert.AreEqual(1, library.Files.Count(f => f.Value)); Assert.IsNotNull(library.Name); Assert.IsNotNull(library.Version); Assert.AreEqual(CdnjsProvider.IdText, library.ProviderId); }