public void Execute_ShouldExecuteARealQueryHandler_UsingCount() { var query = new Entity1Query { ValueLike = "Something" }; this.factoryMock.Setup( x => x.Get<IDbContextDatabaseQueryHandler>( typeof(IDbContextDatabaseQueryHandler<Entity1Query, IDatabaseQueryParametrizedResult<Entity1>>))) .Returns(new Entity1QueryHandler()); using (var context = this.CreateContext()) { context.Start(); for (var i = 0; i < 20; i++) { context.Add(new Entity1 { Value = "Something Good " + i }); } var result = context.Execute(query).Count(); Assert.That(result, Is.EqualTo(20)); } }
public void Execute_ShouldThrowException_WhenNoQueryHandlerFound() { var query = new Entity1Query(); using (var context = this.CreateContext()) { context.Start(); Assert.That( () => context.Execute(query), Throws.Exception.TypeOf<HexagonException>().With.Message.ContainsSubstring("appropriate handler")); } }
public void Execute_ShouldExecuteARealQueryHandler_UsingPaginate() { var query = new Entity1Query { ValueLike = "Something" }; this.factoryMock.Setup( x => x.Get<IDbContextDatabaseQueryHandler>( typeof(IDbContextDatabaseQueryHandler<Entity1Query, IDatabaseQueryParametrizedResult<Entity1>>))) .Returns(new Entity1QueryHandler()); using (var context = this.CreateContext()) { context.Start(); for (var i = 0; i < 50; i++) { context.Add(new Entity1 { Value = "Something Good " + i }); } var intResult = context.Execute(query).OrderBy(x => x.Value); var resultPage1 = intResult.Paginate(1, 30); var resultPage2 = intResult.Paginate(2, 30); Assert.That(resultPage1.CurrentPage, Is.EqualTo(1)); Assert.That(resultPage1.PerPage, Is.EqualTo(30)); Assert.That(resultPage1.TotalEntries, Is.EqualTo(50)); Assert.That(resultPage1.PageCount(), Is.EqualTo(2)); Assert.That(resultPage1.Items.Count(), Is.EqualTo(30)); Assert.That(resultPage2.CurrentPage, Is.EqualTo(2)); Assert.That(resultPage2.PerPage, Is.EqualTo(30)); Assert.That(resultPage2.TotalEntries, Is.EqualTo(50)); Assert.That(resultPage2.PageCount(), Is.EqualTo(2)); Assert.That(resultPage2.Items.Count(), Is.EqualTo(20)); Assert.That(resultPage2.Items.Last().Value, Is.StringEnding(9.ToString())); // Because of sort is not using natural sort :-( } }
public void Execute_ShouldSelectQueryHandler_AndReturnResult() { var query = new Entity1Query(); var resultMock = new Mock<IDatabaseQueryParametrizedResult<Entity1>>(); var queryHandler = new Mock<IDbContextDatabaseQueryHandler<Entity1Query, IDatabaseQueryParametrizedResult<Entity1>>>(); queryHandler.Setup(x => x.Handle(query, It.IsNotNull<DbContext>())).Returns(resultMock.Object).Verifiable(); this.factoryMock.Setup(x => x.Get<IDbContextDatabaseQueryHandler>(typeof(IDbContextDatabaseQueryHandler<Entity1Query, IDatabaseQueryParametrizedResult<Entity1>>))) .Returns(queryHandler.Object) .Verifiable(); using (var context = this.CreateContext()) { context.Start(); var result = context.Execute(query); Assert.That(result, Is.SameAs(resultMock.Object)); queryHandler.Verify(); this.factoryMock.Verify(); } }
public void Execute_ShouldExecuteARealQueryHandler_UsingFirstOrDefault() { var query = new Entity1Query { ValueLike = "Something" }; this.factoryMock.Setup( x => x.Get<IDbContextDatabaseQueryHandler>( typeof(IDbContextDatabaseQueryHandler<Entity1Query, IDatabaseQueryParametrizedResult<Entity1>>))) .Returns(new Entity1QueryHandler()); using (var context = this.CreateContext()) { context.Start(); context.Add(new Entity1 { Value = "Something Good" }); var result = context.Execute(query).FirstOrDefault(); Assert.That(() => result.Value, Is.EqualTo("Something Good")); } }