public void ReadAndWriteRootEntity() { var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var dbSet = new MongoDbSet <RootKnownBaseModel>(context); var rootEntity = new RootKnownBaseModel { Description = "ReadAndWriteRootEntity-RootKnownBaseModel" }; dbSet.Add(rootEntity); var childEntity = new UnknownChildToRootModel { Description = "ReadAndWriteRootEntity-UnknownChildToRootModel" }; dbSet.Add(childEntity); context.SaveChanges(); ResetMongoDb(); dbSet = new MongoDbSet <RootKnownBaseModel>(context); var dbRootEntity = dbSet.Where(e => e.Id == rootEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbRootEntity); Assert.IsInstanceOfType(dbRootEntity, typeof(RootKnownBaseModel)); var dbChildEntity = dbSet.Where(e => e.Id == childEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbChildEntity); Assert.IsInstanceOfType(dbChildEntity, typeof(UnknownChildToRootModel)); }
public void ExtraElementsSerializationIntegrationTest() { EntityMapping.AddMappingProcessor(new CollectionNameProcessor()); EntityMapping.AddMappingProcessor(new ExtraElementsProcessor()); EntityMapping.RegisterType(typeof(ExtraElementsAttrModel)); EntityMapping.RegisterType(typeof(ModelWithExtraElements)); var connection = TestConfiguration.GetConnection(); var modelWithExtraPropertiesDbSet = new MongoDbSet <ModelWithExtraElements>(); modelWithExtraPropertiesDbSet.SetConnection(connection); var entity = new ModelWithExtraElements { PropertyOne = "ModelWithExtraElements", PropertyTwo = 123 }; modelWithExtraPropertiesDbSet.Add(entity); modelWithExtraPropertiesDbSet.SaveChanges(); var extraElementsAttrModelDbSet = new MongoDbSet <ExtraElementsAttrModel>(); extraElementsAttrModelDbSet.SetConnection(connection); var dbEntity = extraElementsAttrModelDbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual("ModelWithExtraElements", dbEntity.AdditionalElements[nameof(ModelWithExtraElements.PropertyOne)]); Assert.AreEqual(123, dbEntity.AdditionalElements[nameof(ModelWithExtraElements.PropertyTwo)]); }
public void AddRelationshipsToExistingEntity() { var connection = TestConfiguration.GetConnection(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetConnection(connection); var entity = dbSet.Create(); entity.Description = "AddRelationshipsToExistingEntity"; dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); dbEntity.StringModelEntities.Add(new StringIdModel { Description = "AddRelationshipsToExistingEntity-StringIdModel-1" }); dbEntity.StringModelEntities.Add(new StringIdModel { Description = "AddRelationshipsToExistingEntity-StringIdModel-2" }); dbSet.SaveChanges(); Assert.AreEqual(2, dbEntity.StringModelEntities.Count); Assert.IsTrue(dbEntity.StringModelEntities.All(e => e.Id != null)); }
public async Task AddRelationshipsToNewEntityAsync() { var connection = TestConfiguration.GetConnection(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetConnection(connection); var entity = dbSet.Create(); entity.Description = "AddRelationshipsToNewEntityAsync"; entity.ObjectIdModelEntities.Add(new ObjectIdIdModel { Description = "AddRelationshipsToNewEntityAsync-ObjectIdIdModel-1" }); entity.ObjectIdModelEntities.Add(new ObjectIdIdModel { Description = "AddRelationshipsToNewEntityAsync-ObjectIdIdModel-2" }); await dbSet.SaveChangesAsync().ConfigureAwait(false); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(2, dbEntity.ObjectIdModelEntities.Count); Assert.IsTrue(dbEntity.ObjectIdModelEntities.All(e => e.Id != ObjectId.Empty)); }
public void ForceLoadEntities() { var connection = TestConfiguration.GetConnection(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetConnection(connection); var entity = dbSet.Create(); entity.Description = "ForceLoadEntities"; entity.StringModelEntities.Add(new StringIdModel { Description = "ForceLoadEntities-StringIdModel-1" }); entity.StringModelEntities.Add(new StringIdModel { Description = "ForceLoadEntities-StringIdModel-2" }); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); var navigationCollection = dbEntity.StringModelEntities as EntityNavigationCollection <StringIdModel>; Assert.AreEqual(2, navigationCollection.UnloadedCount); navigationCollection.LoadEntities(); Assert.AreEqual(2, navigationCollection.LoadedCount); Assert.AreEqual(0, navigationCollection.UnloadedCount); }
public void RemoveRelationshipToEntity() { var connection = TestConfiguration.GetConnection(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetConnection(connection); var entity = dbSet.Create(); entity.Description = "RemoveRelationshipToEntity"; var item = new StringIdModel { Description = "RemoveRelationshipToEntity-StringIdModel-1" }; entity.StringModelEntities.Add(item); dbSet.SaveChanges(); entity.StringModelEntities.Remove(item); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(0, dbEntity.StringModelEntities.Count); var collectionDbSet = new MongoDbSet <StringIdModel>(); collectionDbSet.SetConnection(connection); var itemDbEntity = collectionDbSet.Where(e => e.Id == item.Id).FirstOrDefault(); Assert.IsNotNull(itemDbEntity); }
public void ReadAndWriteRootEntity() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <RootKnownBaseModel>(); dbSet.SetDatabase(database); var rootEntity = new RootKnownBaseModel { Description = "ReadAndWriteRootEntity-RootKnownBaseModel" }; dbSet.Add(rootEntity); var childEntity = new UnknownChildToRootModel { Description = "ReadAndWriteRootEntity-UnknownChildToRootModel" }; dbSet.Add(childEntity); dbSet.SaveChanges(); ResetMongoDbDriver(); dbSet = new MongoDbSet <RootKnownBaseModel>(); dbSet.SetDatabase(database); var dbRootEntity = dbSet.Where(e => e.Id == rootEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbRootEntity); Assert.AreEqual(typeof(RootKnownBaseModel), dbRootEntity.GetType()); var dbChildEntity = dbSet.Where(e => e.Id == childEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbChildEntity); Assert.AreEqual(typeof(UnknownChildToRootModel), dbChildEntity.GetType()); }
public void SaveWithNullNavigationProperty() { var connection = TestConfiguration.GetConnection(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetConnection(connection); var entity = new CollectionIntegrationModel { Description = "SaveWithNullNavigationProperty" }; dbSet.Add(entity); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(0, dbEntity.StringModelEntities.Count); }