Exemplo n.º 1
0
        public void PredicateBuilder_Query_Returns_Result()
        {
            //arrange
            var array   = new[] { "one" };
            var context = new Mock <IDirectoryContext>();
            var query   = new MockQuery <IDirectoryAttributes>(new List <object> {
                array
            });

            context.Setup(x => x.Query("test", SearchScope.Subtree, null, null, null))
            .Returns(query);
            var expression = PredicateBuilder.Create <IDirectoryAttributes>()
                             .And(x => Filter.Equal(x, "x", "y", false))
                             .Or(x => Filter.Equal(x, "a", "b", true));

            //act
            var result = context.Object.Query("test")
                         .Where(expression)
                         .Select(x => x.GetString("whatever"))
                         .ToArray();

            query.MockProvider.ExecutedExpressions.Should().Have.Count.EqualTo(1);
            query.MockProvider.ExecutedExpressions[0].ToString()
            .Should().Contain("Equal(x, \"x\", \"y\", False)")
            .And.Contain("OrElse")
            .And.Contain("Equal(x, \"a\", \"b\", True)")
            .And.Contain("x => x.GetString(\"whatever\")");

            result.Should().Have.SameSequenceAs(array);
        }
Exemplo n.º 2
0
        public MockQuery <T> Query <T>()
        {
            ActiveProvider = new MockQueryProvider(null);
            var query = new MockQuery <T>(ActiveProvider);

            return(query);
        }
Exemplo n.º 3
0
        public void Subquery()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query(); // Elements: 1, 2, 3, 4.

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => new[] { "a", "aaaaa" }.AsQueryable().Select(s1 => s1.Length).Contains(x1)); // Elements: 1, 5.
            Console.WriteLine(filterExpression.GetFilter());

            filterExpression.Include(x2 => new[] { "aa", "aaaaaa" }.AsQueryable().Select(s2 => s2.Length).Contains(x2)); // Elements: 2, 6.
            Console.WriteLine(filterExpression.GetFilter());

            // Intentionally reusing the previous parameter name in expression (x2) and subquery (s2).
            filterExpression.Include(x2 => new[] { "aaa", "aaaaaaa" }.AsQueryable().Select(s2 => s2.Length).Contains(x2)); // Elements: 3, 7.
            Console.WriteLine(filterExpression.GetFilter());

            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Console.WriteLine(mockQuery.GetWherePart(filteredQuery));

            Assert.AreEqual(0, mockQuery.CallCount);
            Assert.AreEqual("1, 2, 3", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 4
0
        public void MultipleExecutions_Query_Returns_Result()
        {
            //arrange
            var array   = new[] { "one" };
            var item    = "two";
            var context = new Mock <IDirectoryContext>();
            var query   = new MockQuery <IDirectoryAttributes>(new List <object> {
                array, item
            });

            context.Setup(x => x.Query("test", SearchScope.Subtree, null, null, null))
            .Returns(query);

            //act
            var result1 = context.Object.Query("test")
                          .Where(x => Filter.Equal(x, "x", "y", false))
                          .Select(x => x.GetString("whatever"))
                          .ToArray();

            var result2 = context.Object.Query("test")
                          .Select(x => x.GetString("whatever"))
                          .FirstOrDefault();

            query.MockProvider.ExecutedExpressions.Should().Have.Count.EqualTo(2);
            query.MockProvider.ExecutedExpressions[0].ToString()
            .Should().Contain("Where")
            .And.Not.Contain("FirstOrDefault");
            query.MockProvider.ExecutedExpressions[1].ToString()
            .Should().Contain("FirstOrDefault")
            .And.Not.Contain("Where");
            result1.Should().Have.SameSequenceAs(array);
            result2.Should().Be.EqualTo(item);
        }
Exemplo n.º 5
0
        public MockQuery <IDirectoryAttributes> Query()
        {
            ActiveProvider = new MockQueryProvider(null);
            var query = new MockQuery <IDirectoryAttributes>(ActiveProvider);

            return(query);
        }
		public void BaseRequiresConversationContext()
		{
			var q = new MockQuery();
			q.ConversationContext = null;
			var e = Assert.Throws<InvalidOperationException>(() => q.Execute());
			Assert.That(e.Message, Contains.Substring("ConversationContext"));
			Assert.That(e.Message, Contains.Substring("register"));
		}
Exemplo n.º 7
0
        static void Run(Type expected, string findName)
        {
            CreateByTypeQuery.FindTypeByName query = Pleasure.Generator.Invent <CreateByTypeQuery.FindTypeByName>(dsl => dsl.Tuning(r => r.Type, findName));
            var mockQuery = MockQuery <CreateByTypeQuery.FindTypeByName, Type>
                            .When(query);

            mockQuery.Execute();
            mockQuery.ShouldBeIsResult(expected);
        }
Exemplo n.º 8
0
        public static void Establish(SearchItemOfType type)
        {
            var query = Pleasure.Generator.Invent <GetImageQuery>(dsl => dsl.Tuning(r => r.Type, type));

            expected = Pleasure.Generator.Bytes();

            mockQuery = MockQuery <GetImageQuery, byte[]>
                        .When(query);
        }
Exemplo n.º 9
0
        public void GetAppointmentsByCustomerRequest_SetsQueryParameter()
        {
            MockHydrater.Setup(m => m.Hydrate(It.IsAny <DataTable>())).Returns(new List <AppointmentVO>());

            var actual = Target.GetAppointmentsByCustomerRequest(new CustomerRequestVO {
                Identity = 1
            });

            MockQuery.Verify(m => m.AddParameter(1, CustomerRequestQueryParameters.Identity), Times.Once);
        }
Exemplo n.º 10
0
        public void GetCommentsByStop_SetsQueryParameter()
        {
            MockHydrater.Setup(m => m.Hydrate(It.IsAny <DataTable>())).Returns(new List <CommentVO>());

            var actual = Target.GetCommentsByStop(new StopVO {
                Identity = 1
            });

            MockQuery.Verify(m => m.AddParameter(1, StopRequestQueryParameters.Identity), Times.Once);
        }
Exemplo n.º 11
0
        static MockMessage <GetRecurrencyDateQuery, DateTime?> Execute(Action <IInventFactoryDsl <GetRecurrencyDateQuery> > dsl)
        {
            var query = Pleasure.Generator.Invent(dsl);

            var res = MockQuery <GetRecurrencyDateQuery, DateTime?>
                      .When(query);

            res.Original.Execute();
            return(res);
        }
Exemplo n.º 12
0
        public void EmptyFilter()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();
            var filteredQuery    = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual("New query: System.Int32[]", mockQuery.GetWherePart(filteredQuery), "Result should be a newly constructed empty array");
            Assert.AreEqual("", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(0, mockQuery.CallCount, "Empty filter should be optimized to not use original query.");
        }
Exemplo n.º 13
0
        public static void AssertReceived <T> (MethodInfo method, MockQuery <T> query)
        {
            Expression expression = query.MockProvider.Received;

            MethodCallExpression call = expression as MethodCallExpression;

            Assert.IsNotNull(call, "Expected a MethodCallExpression");

            MethodInfo expected = method.MakeGenericMethod(typeof(T));

            Assert.AreEqual(expected, call.Method, "Expected method: " + expected);
        }
Exemplo n.º 14
0
        public void Test1()
        {
            MockQuery query = new MockQuery();

            StringVisitor visitor = new StringVisitor(query);

            Expression ex = new WhereEqualsExpression(null, "Title", "title1");

            visitor.Visite(ex);

            Assert.AreEqual("Title = title1", query.ClauseText);
        }
Exemplo n.º 15
0
        public void Test1()
        {
            MockQuery query = new MockQuery();

            StringVisitor visitor = new StringVisitor(query);

            Expression ex = new WhereEqualsExpression(null, "Title", "title1");

            visitor.Visite(ex);

            Assert.AreEqual("Title = title1", query.ClauseText);
        }
Exemplo n.º 16
0
        public void GetCustomerRequestsByReferenceNumber_SetsQueryParameter()
        {
            MockHydrater.Setup(m => m.Hydrate(It.IsAny <DataTable>())).Returns(new List <CustomerRequestVO>());

            var actual = Target.GetCustomerRequestsByReferenceNumber(new CustomerRequestVO {
                ReferenceNumbers = new List <ReferenceNumberVO> {
                    new ReferenceNumberVO {
                        ReferenceNumber = "1"
                    }
                }
            });

            MockQuery.Verify(m => m.AddParameter("1", CustomerRequestQueryParameters.ReferenceNumber), Times.Once);
        }
Exemplo n.º 17
0
        public void AllowSomeDenyNone()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => x1 >= 3);
            filterExpression.Exclude(x2 => false);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => (x1 >= 3))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("3, 4", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 18
0
        public void AllowAllDenyNone()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => true);
            filterExpression.Exclude(x2 => false);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual("", mockQuery.GetWherePart(filteredQuery), "Optimized - No where part");
            Assert.AreEqual("1, 2, 3, 4", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 19
0
        public void AllowSome2()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => x1 >= 4);
            filterExpression.Include(x2 => x2 <= 2);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => ((x1 >= 4) OrElse (x1 <= 2)))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("1, 2, 4", TestUtility.DumpSorted(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 20
0
        public void AllowAllDenySome2()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => true);
            filterExpression.Exclude(x2 => x2 > 2);
            filterExpression.Exclude(x3 => x3 < 2);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x2 => (Not((x2 > 2)) AndAlso Not((x2 < 2))))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("2", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 21
0
        public void AllowSome2DenySome2()
        {
            var mockQuery = new MockQuery();
            var query     = mockQuery.Query();

            var filterExpression = new FilterExpression <int>();

            filterExpression.Include(x1 => x1 >= 2);
            filterExpression.Include(x2 => x2 >= 4);
            filterExpression.Exclude(x3 => x3 >= 4);
            filterExpression.Exclude(x4 => x4 >= 5);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => (((x1 >= 2) OrElse (x1 >= 4)) AndAlso (Not((x1 >= 4)) AndAlso Not((x1 >= 5)))))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("2, 3", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 22
0
        public void TestMockQuery()
        {
            var mockQuery = new MockQuery();
            var q = mockQuery.Query();
            Assert.AreEqual(0, mockQuery.CallCount);

            Assert.AreEqual(10, q.Sum());
            Assert.AreEqual(1, mockQuery.CallCount);

            Assert.AreEqual(4, q.Count());
            Assert.AreEqual(2, mockQuery.CallCount);

            Assert.AreEqual("1, 2, 3, 4", TestUtility.Dump(q));
            Assert.AreEqual(3, mockQuery.CallCount);

            Assert.AreEqual("2, 3, 4", TestUtility.Dump(q.Where(x => x >= 2)));
            Assert.AreEqual(4, mockQuery.CallCount);
        }
Exemplo n.º 23
0
        public void TestMockQuery()
        {
            var mockQuery = new MockQuery();
            var q         = mockQuery.Query();

            Assert.AreEqual(0, mockQuery.CallCount);

            Assert.AreEqual(10, q.Sum());
            Assert.AreEqual(1, mockQuery.CallCount);

            Assert.AreEqual(4, q.Count());
            Assert.AreEqual(2, mockQuery.CallCount);

            Assert.AreEqual("1, 2, 3, 4", TestUtility.Dump(q));
            Assert.AreEqual(3, mockQuery.CallCount);

            Assert.AreEqual("2, 3, 4", TestUtility.Dump(q.Where(x => x >= 2)));
            Assert.AreEqual(4, mockQuery.CallCount);
        }
Exemplo n.º 24
0
        public void ToList_Query_Returns_Result()
        {
            //arrange
            var list    = new List <string>();
            var context = new Mock <IDirectoryContext>();
            var query   = new MockQuery <IDirectoryAttributes>(new List <object> {
                list
            });

            context.Setup(x => x.Query("test", SearchScope.Subtree, null, null, null))
            .Returns(query);

            //act
            var result = context.Object.Query("test")
                         .Where(x => Filter.Equal(x, "x", "y", false))
                         .Select(x => x.GetString("whatever"))
                         .ToList();

            //assert
            query.MockProvider.ExecutedExpressions.Should().Have.Count.EqualTo(1);
            result.Should().Be.SameInstanceAs(list);
        }
        public void Get_Custom_Search_Returns_Results()
        {
            //arange
            var expectedResults = new List <object>
            {
                new[] { new UserListItem {
                            DistinguishedName = "test", Name = "test", UserId = "test"
                        } }
            };
            var mockQuery = new MockQuery <User>(expectedResults);

            _mockContext.Setup(x => x.Query <User>(SearchScope.Subtree, null))
            .Returns(mockQuery);

            //act
            var results = _usersController.Find("blah blah", true) as IEnumerable <object>;

            //assert
            results.Satisfy(x => x.Count() == 1 && ((UserListItem)x.First()).DistinguishedName == "test");
            mockQuery.MockProvider.ExecutedExpressions[0].ToString()
            .Should()
            .Contain(
                "FilterWith(\"(blah blah)\").Select(s => new UserListItem() {DistinguishedName = s.DistinguishedName, Name = Format(\"{0} {1}\", s.FirstName, s.LastName), PrimaryAffiliation = s.PrimaryAffiliation, UserId = s.UserId})");
        }
Exemplo n.º 26
0
        public void AllowAllDenyNone()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            filterExpression.Include(x1 => true);
            filterExpression.Exclude(x2 => false);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual("", mockQuery.GetWherePart(filteredQuery), "Optimized - No where part");
            Assert.AreEqual("1, 2, 3, 4", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 27
0
        public void AllowSome2()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            filterExpression.Include(x1 => x1 >= 4);
            filterExpression.Include(x2 => x2 <= 2);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => ((x1 >= 4) OrElse (x1 <= 2)))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("1, 2, 4", TestUtility.DumpSorted(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 28
0
        public void AllowAllDenySome2()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            filterExpression.Include(x1 => true);
            filterExpression.Exclude(x2 => x2 > 2);
            filterExpression.Exclude(x3 => x3 < 2);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x2 => (Not((x2 > 2)) AndAlso Not((x2 < 2))))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("2", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
		public void BaseCallsExecuteWithSession()
		{
			var q = new MockQuery();
			q.Execute();
			Assert.That(((MockQuery)q).ExecuteCalled, Is.True);
		}
Exemplo n.º 30
0
 public IExecutable <string> GetQuery()
 {
     return(MockQuery <string> .From("foo", "bar"));
 }
Exemplo n.º 31
0
        public void AllowSome2DenySome2()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            filterExpression.Include(x1 => x1 >= 2);
            filterExpression.Include(x2 => x2 >= 4);
            filterExpression.Exclude(x3 => x3 >= 4);
            filterExpression.Exclude(x4 => x4 >= 5);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => (((x1 >= 2) OrElse (x1 >= 4)) AndAlso (Not((x1 >= 4)) AndAlso Not((x1 >= 5)))))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("2, 3", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 32
0
        public void EmptyFilter()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual("New query: System.Int32[]", mockQuery.GetWherePart(filteredQuery), "Result should be a newly constructed empty array");
            Assert.AreEqual("", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(0, mockQuery.CallCount, "Empty filter should be optimized to not use original query.");
        }
Exemplo n.º 33
0
		public void Query()
		{
			var query = new MockQuery();
			mocks.Container.Register(Component.For<IMockQuery>().Instance(query));
			int result = AR.Query<int,IMockQuery>(q=>q.Result = 23);
			Assert.That(query.ExecuteCalled);
			Assert.That(result, Is.EqualTo(23));
		}
        public void Get_Custom_Search_Returns_Results()
        {
            //arange
            var expectedResults = new List<object>
            {
                new[] {new UserListItem {DistinguishedName = "test", Name = "test", UserId = "test"}}
            };
            var mockQuery = new MockQuery<User>(expectedResults);
            _mockContext.Setup(x => x.Query<User>(SearchScope.Subtree, null))
                .Returns(mockQuery);

            //act
            var results = _usersController.Find("blah blah", true) as IEnumerable<object>;

            //assert
            results.Satisfy(x => x.Count() == 1 && ((UserListItem)x.First()).DistinguishedName == "test");
            mockQuery.MockProvider.ExecutedExpressions[0].ToString()
                .Should()
                .Contain(
                    "FilterWith(\"(blah blah)\").Select(s => new UserListItem() {DistinguishedName = s.DistinguishedName, Name = Format(\"{0} {1}\", s.FirstName, s.LastName), PrimaryAffiliation = s.PrimaryAffiliation, UserId = s.UserId})");
        }
Exemplo n.º 35
0
        public void AllowSomeDenyNone()
        {
            var mockQuery = new MockQuery();
            var query = mockQuery.Query();

            var filterExpression = new FilterExpression<int>();
            filterExpression.Include(x1 => x1 >= 3);
            filterExpression.Exclude(x2 => false);
            var filteredQuery = GetOpt(filterExpression.GetFilter(), query);

            Assert.AreEqual(".Where(x1 => (x1 >= 3))", mockQuery.GetWherePart(filteredQuery));
            Assert.AreEqual("3, 4", TestUtility.Dump(filteredQuery));
            Assert.AreEqual(1, mockQuery.CallCount);
        }
Exemplo n.º 36
0
 public Task <int> OnMockQuery(MockQuery query, CancellationToken cancellationToken)
 {
     Assert.NotNull(query);
     return(Task.FromResult(100));
 }