public async Task Updates_in_database()
        {
            var ctxName    = Guid.NewGuid().ToString();
            var cmdletMock = CmdletMock.CreateMock();

            var newResource = new Models.ApiResource
            {
                Name   = "MyResource",
                Scopes = new[] { new Models.Scope {
                                     Name = "Scope1"
                                 } }
            };

            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var controller = new ApiResourceController(ctx, cmdletMock.Object);
                controller.AddApiResource(newResource, false);
            }

            Models.ApiResource setResource;
            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var store = new ResourceStore(ctx, NullLogger <ResourceStore> .Instance);
                setResource = await store.FindApiResourceAsync("MyResource");
            }

            setResource.Scopes = new[] { new Models.Scope {
                                             Name = "Scope1"
                                         }, new Models.Scope {
                                             Name = "Scope2"
                                         } };
            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var controller = new ApiResourceController(ctx, cmdletMock.Object);
                controller.UpdateApiResource(setResource, "MyOtherResource", false);
            }

            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var store    = new ResourceStore(ctx, NullLogger <ResourceStore> .Instance);
                var resource = await store.FindApiResourceAsync("MyOtherResource");

                Assert.NotNull(resource);
                Assert.Equal(2, resource.Scopes.Count);
            }
        }
        public async Task Adds_to_database()
        {
            var cmdletMock = CmdletMock.CreateMock();
            var ctxName    = Guid.NewGuid().ToString();

            var newApiResource = new Models.ApiResource
            {
                Name   = "MyResource",
                Scopes = new Models.Scope[] {
                    new Models.Scope {
                        Name = "Scope1"
                    },
                    new Models.Scope {
                        Name = "Scope2"
                    }
                }
            };

            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var controller = new ApiResourceController(ctx, cmdletMock.Object);
                controller.AddApiResource(newApiResource, true);
            }

            using (var ctx = _dbContextFixture.GetContext(ctxName))
            {
                var resources = ctx.ApiResources.ToList();
                Assert.Single(resources);

                var store    = new ResourceStore(ctx, NullLogger <ResourceStore> .Instance);
                var resource = await store.FindApiResourceAsync("MyResource");

                Assert.NotNull(resource);
                Assert.Equal(2, resource.Scopes.Count);
            }

            cmdletMock.Verify(cmdlet => cmdlet.WriteObject(newApiResource), Times.Exactly(1));
        }