Exemplo n.º 1
0
        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']"));
        }
Exemplo n.º 2
0
        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"));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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'"));
        }
Exemplo n.º 5
0
        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);
        }