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);
            }
        }
예제 #2
0
        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);
            }
        }