public async Task TestGetOrganizationDocumentKeys_DbPropertyValues_HasOrgId() { using (ShimsContext.Create()) { var orgId = 10; var address = new Address { OrganizationId = orgId }; var dbPropertyValues = new System.Data.Entity.Infrastructure.Fakes.ShimDbPropertyValues(); dbPropertyValues.GetValueOf1String <int?>((propertyName) => { Assert.AreEqual(PropertyHelper.GetPropertyName <Address>(x => x.OrganizationId), propertyName); return(orgId); }); Action <List <DocumentKey> > tester = (documentKeys) => { Assert.AreEqual(1, documentKeys.Count); var expectedDocumentKey = new DocumentKey(OrganizationDTODocumentConfiguration.ORGANIZATION_DTO_DOCUMENT_TYPE_ID, orgId); Assert.AreEqual(expectedDocumentKey, documentKeys.First()); }; var keys = saveAction.GetRelatedEntityDocumentKeysOfModifiedEntity(address, dbPropertyValues); var keysAsync = await saveAction.GetRelatedEntityDocumentKeysOfModifiedEntityAsync(address, dbPropertyValues); tester(keys); tester(keysAsync); } }
public async Task TestBeforeSaveChanges_NonAddedEntity() { using (ShimsContext.Create()) { var created = new SimpleEntity { Id = 1 }; saveAction.CreatedEntities.Add(created); var dbPropertyValues = new System.Data.Entity.Infrastructure.Fakes.ShimDbPropertyValues(); dbPropertyValues.GetValueOf1String <int>((propertyName) => { Assert.AreEqual(PropertyHelper.GetPropertyName <SimpleEntity>(x => x.Id), propertyName); return(created.Id); }); var typedEntityEntry = new System.Data.Entity.Infrastructure.Fakes.ShimDbEntityEntry <SimpleEntity> { EntityGet = () => created, StateGet = () => EntityState.Modified, GetDatabaseValues = () => dbPropertyValues, GetDatabaseValuesAsync = () => { return(Task.FromResult <DbPropertyValues>(dbPropertyValues)); } }; var entityEntry = new System.Data.Entity.Infrastructure.Fakes.ShimDbEntityEntry { EntityGet = () => created, StateGet = () => EntityState.Modified, }; System.Data.Entity.Infrastructure.Fakes.ShimDbChangeTracker.AllInstances.Entries = (tracker) => { var entries = new List <DbEntityEntry>(); entries.Add(entityEntry); return(entries); }; System.Data.Entity.Fakes.ShimDbContext.AllInstances.EntryOf1M0 <SimpleEntity>((ctx, e) => { return(typedEntityEntry); }); Action testAndReset = () => { Assert.AreEqual(1, saveAction.RelatedEntityDocumentKeys.Count); var expectedDocumentKey = new DocumentKey(SimpleEntityConfiguration.SIMPLE_ENTITY_DOCUMENT_TYPE_ID, created.Id); Assert.AreEqual(expectedDocumentKey, saveAction.RelatedEntityDocumentKeys.First()); saveAction.RelatedEntityDocumentKeys.Clear(); }; saveAction.BeforeSaveChanges(context); testAndReset(); await saveAction.BeforeSaveChangesAsync(context); testAndReset(); } }
public async Task TestGetOrganizationDocumentKeys_DbPropertyValues_DoesNotHaveOrgId() { using (ShimsContext.Create()) { var dbPropertyValues = new System.Data.Entity.Infrastructure.Fakes.ShimDbPropertyValues(); dbPropertyValues.GetValueOf1String <int?>((propertyName) => { Assert.AreEqual(PropertyHelper.GetPropertyName <Address>(x => x.OrganizationId), propertyName); return(null); }); Action <List <DocumentKey> > tester = (documentKeys) => { Assert.AreEqual(0, documentKeys.Count); }; var keys = saveAction.GetRelatedEntityDocumentKeysOfModifiedEntity(null, dbPropertyValues); var keysAsync = await saveAction.GetRelatedEntityDocumentKeysOfModifiedEntityAsync(null, dbPropertyValues); tester(keys); tester(keysAsync); } }