public async Task SumAsync_NullableDecimal_HasValue() { EntityMapping.RegisterType(typeof(QueryableAsyncSumModel)); var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var provider = new MongoFrameworkQueryProvider <QueryableAsyncSumModel>(connection); var queryable = new MongoFrameworkQueryable <QueryableAsyncSumModel>(provider); context.ChangeTracker.SetEntityState(new QueryableAsyncSumModel { Title = "SumAsync_NullableDecimal_HasValue.1", NullableDecimalNumber = 5 }, EntityEntryState.Added); context.ChangeTracker.SetEntityState(new QueryableAsyncSumModel { Title = "SumAsync_NullableDecimal_HasValue.2", NullableDecimalNumber = 9 }, EntityEntryState.Added); context.ChangeTracker.SetEntityState(new QueryableAsyncSumModel { Title = "SumAsync_NullableDecimal_HasValue.3" }, EntityEntryState.Added); context.SaveChanges(); var a = queryable.Select(e => e.NullableDecimalNumber).Sum(); var result = await queryable.Select(e => e.NullableDecimalNumber).SumAsync(); Assert.AreEqual(14, result); }
public void EntityProcessorsNotFiredWhenNotTEntity() { var database = TestConfiguration.GetDatabase(); new EntityMapper <MongoFrameworkQueryableModel>(); var collection = database.GetCollection <MongoFrameworkQueryableModel>("MongoFrameworkQueryableModel"); var underlyingQueryable = collection.AsQueryable(); var queryable = new MongoFrameworkQueryable <MongoFrameworkQueryableModel, MongoFrameworkQueryableModel>(underlyingQueryable); var processor = new TestProcessor <MongoFrameworkQueryableModel>(); queryable.EntityProcessors.Add(processor); var entityContainer = new DbEntityCollection <MongoFrameworkQueryableModel>(); var writer = new DbEntityWriter <MongoFrameworkQueryableModel>(database); entityContainer.Update(new MongoFrameworkQueryableModel { Title = "EntityProcessorNoFireTest" }, DbEntityEntryState.Added); writer.Write(entityContainer); foreach (var titles in queryable.Select(e => e.Title)) { //Do nothing } Assert.IsFalse(processor.EntityProcessed); }
public void EntityProcessorsNotFiredWhenNotTEntity() { EntityMapping.RegisterType(typeof(MongoFrameworkQueryableModel)); var connection = TestConfiguration.GetConnection(); var collection = connection.GetDatabase().GetCollection <MongoFrameworkQueryableModel>(nameof(MongoFrameworkQueryableModel)); var underlyingQueryable = collection.AsQueryable(); var queryable = new MongoFrameworkQueryable <MongoFrameworkQueryableModel, MongoFrameworkQueryableModel>(connection, underlyingQueryable); var processor = new TestProcessor <MongoFrameworkQueryableModel>(); queryable.EntityProcessors.Add(processor); var entityCollection = new EntityCollection <MongoFrameworkQueryableModel>(); var writerPipeline = new EntityWriterPipeline <MongoFrameworkQueryableModel>(connection); writerPipeline.AddCollection(entityCollection); entityCollection.Update(new MongoFrameworkQueryableModel { Title = "EntityProcessorNoFireTest" }, EntityEntryState.Added); writerPipeline.Write(); foreach (var titles in queryable.Select(e => e.Title)) { //Do nothing } Assert.IsFalse(processor.EntityProcessed); }
public void EntityProcessorsNotFiredWhenNotTEntity_Select() { EntityMapping.RegisterType(typeof(MongoFrameworkQueryableModel)); var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var provider = new MongoFrameworkQueryProvider <MongoFrameworkQueryableModel>(connection); var queryable = new MongoFrameworkQueryable <MongoFrameworkQueryableModel>(provider); var processor = new TestProcessor <MongoFrameworkQueryableModel>(); provider.EntityProcessors.Add(processor); context.ChangeTracker.SetEntityState(new MongoFrameworkQueryableModel { Title = "EntityProcessorsNotFiredWhenNotTEntity_Select" }, EntityEntryState.Added); context.SaveChanges(); foreach (var titles in queryable.Select(e => e.Title)) { //Do nothing } Assert.IsFalse(processor.EntityProcessed); }
public async Task SumAsync_NullableLong_NoValue() { EntityMapping.RegisterType(typeof(QueryableAsyncSumModel)); var connection = TestConfiguration.GetConnection(); var provider = new MongoFrameworkQueryProvider <QueryableAsyncSumModel>(connection); var queryable = new MongoFrameworkQueryable <QueryableAsyncSumModel>(provider); var result = await queryable.Select(e => e.NullableLongNumber).SumAsync(); Assert.IsNull(result); }
public async Task MinAsync_HasValues_Date() { EntityMapping.RegisterType(typeof(QueryableAsyncModel)); var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var provider = new MongoFrameworkQueryProvider <QueryableAsyncModel>(connection); var queryable = new MongoFrameworkQueryable <QueryableAsyncModel>(provider); context.ChangeTracker.SetEntityState(new QueryableAsyncModel { Title = "MinAsync_HasValues_Date.1", Date = new DateTime(2020, 3, 10, 0, 0, 0, DateTimeKind.Utc) }, EntityEntryState.Added); context.ChangeTracker.SetEntityState(new QueryableAsyncModel { Title = "MinAsync_HasValues_Date.2", Date = new DateTime(2020, 1, 10, 0, 0, 0, DateTimeKind.Utc) }, EntityEntryState.Added); context.SaveChanges(); var result = await queryable.Select(e => e.Date).MinAsync(); Assert.AreEqual(new DateTime(2020, 1, 10, 0, 0, 0, DateTimeKind.Utc), result); }
public async Task MinAsync_HasValues_Number() { EntityMapping.RegisterType(typeof(QueryableAsyncModel)); var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var provider = new MongoFrameworkQueryProvider <QueryableAsyncModel>(connection); var queryable = new MongoFrameworkQueryable <QueryableAsyncModel>(provider); context.ChangeTracker.SetEntityState(new QueryableAsyncModel { Title = "MinAsync_HasValues_Number.1", IntNumber = 7 }, EntityEntryState.Added); context.ChangeTracker.SetEntityState(new QueryableAsyncModel { Title = "MinAsync_HasValues_Number.2", IntNumber = 5 }, EntityEntryState.Added); context.SaveChanges(); var result = await queryable.Select(e => e.IntNumber).MinAsync(); Assert.AreEqual(5, result); }
public async Task MinAsync_NoValues() { EntityMapping.RegisterType(typeof(QueryableAsyncModel)); var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var provider = new MongoFrameworkQueryProvider <QueryableAsyncModel>(connection); var queryable = new MongoFrameworkQueryable <QueryableAsyncModel>(provider); context.SaveChanges(); await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await queryable.Select(e => e.IntNumber).MinAsync()); }