コード例 #1
0
        public async Task UpdateIdentityResourceAsync()
        {
            using (var context = new ConfigurationDbContext(_dbContextOptions, _storeOptions, _operationalStore))
            {
                IIdentityResourceRepository identityResourceRepository = new IdentityResourceRepository(context);

                //Generate random new identity resource
                var identityResource = IdentityResourceMock.GenerateRandomIdentityResource(0);

                //Add new identity resource
                await identityResourceRepository.AddIdentityResourceAsync(identityResource);

                //Get new identity resource
                var newIdentityResource = await context.IdentityResources.Where(x => x.Id == identityResource.Id).SingleOrDefaultAsync();

                //Assert new identity resource
                newIdentityResource.ShouldBeEquivalentTo(identityResource, options => options.Excluding(o => o.Id));

                //Detached the added item
                context.Entry(newIdentityResource).State = EntityState.Detached;

                //Generete new identity resource with added item id
                var updatedIdentityResource = IdentityResourceMock.GenerateRandomIdentityResource(newIdentityResource.Id);

                //Update identity resource
                await identityResourceRepository.UpdateIdentityResourceAsync(updatedIdentityResource);

                //Get updated identity resource
                var updatedIdentityResourceEntity = await context.IdentityResources.Where(x => x.Id == updatedIdentityResource.Id).SingleAsync();

                //Assert updated identity resource
                updatedIdentityResource.ShouldBeEquivalentTo(updatedIdentityResourceEntity);
            }
        }