public void Deletes_from_database() { Models.ApiResource passThrougResult = null; var cmdletMock = CmdletMock.CreateMock(); cmdletMock.Setup(cmdlet => cmdlet.WriteObject(It.IsAny <Models.ApiResource>())) .Callback <object>(p => passThrougResult = p as Models.ApiResource); var ctxName = Guid.NewGuid().ToString(); using (var ctx = _dbContextFixture.GetContext(ctxName)) { ctx.ApiResources.Add(new Models.ApiResource { Name = "MyResource" }.ToEntity()); ctx.SaveChanges(); } using (var ctx = _dbContextFixture.GetContext(ctxName)) { var controller = new ApiResourceController(ctx, cmdletMock.Object); controller.DeleteApiResource("MyResource", true); } using (var ctx = _dbContextFixture.GetContext(ctxName)) { var resources = ctx.ApiResources.ToList(); Assert.Empty(resources); Assert.Equal("MyResource", passThrougResult?.Name); } }
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)); }
protected override void BeginProcessing() { base.BeginProcessing(); _controller = new ApiResourceController(DbContext, this); }