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)); }