public void EnumParsedToString() { var dataApiClient = new Mock <IDataApiClient>(); string actualQuery = null; dataApiClient .Setup(x => x.SearchAsync(It.IsAny <string>(), ResultFormat.Json)) .Callback <string, ResultFormat>((query, format) => actualQuery = query) .Returns(Task.FromResult(Stream.Null)); var sut = new GenericDatabase <ClassWithEnum>(dataApiClient.Object); // Test 1 sut.Where(x => x.Role == Role.Analyst).ToList(); Assert.That(actualQuery, Is.EqualTo("FROM ClassWithEnum WHERE Data.Role = 'Analyst'")); // Test 2 sut.Where(x => x.Role.InSet(Role.Viewer, Role.DataProducer)).ToList(); Assert.That(actualQuery, Is.EqualTo("FROM ClassWithEnum WHERE Data.Role IN ['Viewer', 'DataProducer']")); // Test 3 var test3Roles = new[] { Role.UserManager, Role.Analyst }; sut.Where(x => test3Roles.Contains(x.Role)).ToList(); Assert.That(actualQuery, Is.EqualTo("FROM ClassWithEnum WHERE Data.Role IN ['UserManager', 'Analyst']")); }
public void SupportsNinjaNyeSearch() { var searchText = "arla hp"; var searchTerms = searchText.Split(); var resultStream = new MemoryStream(Encoding.UTF8.GetBytes( "{\"Data\": { \"id\": \"1179240\", \"source_id\": \"84\", \"business_name\": \"Letmælk\", \"source_system\": \"SQL\", \"source_table\": \"ingredients_dbo_Ingredient\", \"component_type\": \"Ingredient\", \"created_on\": \"1/13/2017 9:58:45 AM\", \"created_by\": \"JDOE\", \"updated_on\": null, \"updated_by\": null, \"is_deleted\": \"False\"} }" )); var dataApiClient = new Mock <IDataApiClient>(); dataApiClient.Setup(x => x.SearchAsync(It.IsAny <string>(), ResultFormat.Json)) .Returns(Task.FromResult((Stream)resultStream)); var queryable = new GenericDatabase <TestObject1>(dataApiClient.Object); var filter = "MDS"; var sourceSystem = filter != "all" ? filter : null; var searchResult = queryable .Where(x => sourceSystem != null ? x.SourceSystem == filter : x.SourceSystem != "MDS") .Search(x => x.Name, x => x.SourceId) .ContainingAll(searchTerms) .OrderBy(x => x.Name) .ThenByDescending(x => x.CreatedBy) .Select(x => x.Id) .ToList(); Assert.That(searchResult.Count, Is.EqualTo(1)); Assert.That(searchResult[0], Is.EqualTo("1179240")); }
public void QueryableIntegrationTest() { var ids = new List <string> { "1228357", "1228358" }; var dataApiClient = new DataApiClient(new ApiConfiguration("", 443)); var queryable = new GenericDatabase <TestObject1>(dataApiClient); var searchResult = queryable.Where(x => ids.Contains(x.Id)).ToList(); Assert.That(searchResult, Is.Not.Null); CollectionAssert.AreEqual(ids, searchResult.Select(x => x.Id)); }
public void ConditionalExpressionParsedCorrectly() { var dataApiClient = new Mock <IDataApiClient>(); string actualQuery = null; dataApiClient .Setup(x => x.SearchAsync(It.IsAny <string>(), ResultFormat.Json)) .Callback <string, ResultFormat>((query, format) => actualQuery = query) .Returns(Task.FromResult(Stream.Null)); var sut = new GenericDatabase <TestObject1>(dataApiClient.Object); // Test 1 var sourceSystem = "SAP"; sut.Where(x => sourceSystem != null ? x.SourceSystem == sourceSystem : x.SourceSystem != "MDS").ToList(); Assert.That(actualQuery, Is.EqualTo("FROM TestObject1 WHERE Data.source_system = 'SAP'")); // Test 1 sourceSystem = null; sut.Where(x => sourceSystem != null ? x.SourceSystem == sourceSystem : x.SourceSystem != "MDS").ToList(); Assert.That(actualQuery, Is.EqualTo("FROM TestObject1 WHERE Data.source_system != 'MDS'")); }
public void AutocompleteWithGenericDatabaseQueryable() { var resultStream = new MemoryStream(Encoding.UTF8.GetBytes( "{\"Data\": { \"id\": \"1179240\", \"source_id\": \"84\", \"business_name\": \"Letmælk\", \"source_system\": \"SQL\", \"source_table\": \"ingredients_dbo_Ingredient\", \"component_type\": \"Ingredient\", \"created_on\": \"1/13/2017 9:58:45 AM\", \"created_by\": \"JDOE\", \"updated_on\": null, \"updated_by\": null, \"is_deleted\": \"False\"} }" )); var dataApiClient = new Mock <IDataApiClient>(); dataApiClient .Setup(x => x.SearchAsync(It.IsAny <string>(), ResultFormat.Json)) .Returns(Task.FromResult((Stream)resultStream)); var trialRepository = new GenericDatabase <TestObject1>(dataApiClient.Object); Assert.That(() => trialRepository.Where(x => x.Id.StartsWith("abc")).Take(10).ToList(), Throws.Nothing); }