public void GivenAUserWhoOwnsTheEntity_WhenGettingAnUnprocessedFlagForThatEntity_TheFlagIsReturned() { var id = 7; var submitter = 6; var entity = 5; var fakeFlag = new RedFlag { Id = id, Status = RedFlagStatus.AwaitingEntityInput, Submitter = submitter, EntityId = entity }; var flags = Enumerable.Range(0, 100) .Select(r => r == id ? fakeFlag : new RedFlag { Id = r }); contextMock.SetupGet(r => r.RedFlags).Returns(flags.ToDbSet()); authorizationServiceMock.Setup(r => r.HasRole(GlobalRole.Admin)).Returns(true); authorizationServiceMock.Setup(r => r.GetUserId()).Returns(4); authorizationServiceMock.Setup(r => r.HasRole(entity, EntityRole.Owner)).Returns(true); var response = controller.GetFlag(id); Assert.IsInstanceOfType(response, typeof(JsonResult)); var jsonResult = response as JsonResult; Assert.IsInstanceOfType(jsonResult.Value, typeof(RedFlag)); var model = jsonResult.Value as RedFlag; Assert.AreEqual(fakeFlag, model); }
public ActionResult SubmitFlag(int entityId, RedFlag redFlag) { if (!ModelState.IsValid) { return(BadRequest(redFlag)); } redFlag.EntityId = entityId; redFlag.Submitter = authorizationService.GetUserId(); db.RedFlags.Add(redFlag); db.SaveChanges(); return(Created("", redFlag)); }
public void GivenAValidCompany_WhenSubmittingAnInvalidRedFlag_AnErrorIsReturned() { var entityId = 2; var redFlag = new RedFlag { }; var redFlagsDbSetMock = new Mock <DbSet <RedFlag> >(); contextMock.SetupGet(r => r.RedFlags).Returns(redFlagsDbSetMock.Object); controller.ModelState.AddModelError("Bla", "Test error"); var response = controller.SubmitFlag(entityId, redFlag); Assert.IsInstanceOfType(response, typeof(BadRequestObjectResult)); redFlagsDbSetMock.Verify(r => r.Add(redFlag), Times.Never); contextMock.Verify(r => r.SaveChanges(), Times.Never); }
public void GivenAValidCompany_WhenSubmittingAValidRedFlag_TheFlagIsAccepted() { var entityId = 2; var redFlag = new RedFlag { Comment = "The guy did not deliver the product" }; var redFlagsDbSetMock = new Mock <DbSet <RedFlag> >(); contextMock.SetupGet(r => r.RedFlags).Returns(redFlagsDbSetMock.Object); var response = controller.SubmitFlag(entityId, redFlag); Assert.IsInstanceOfType(response, typeof(CreatedResult)); redFlagsDbSetMock.Verify(r => r.Add(redFlag), Times.Once); contextMock.Verify(r => r.SaveChanges(), Times.Once); }
public void GivenANonAdminUser_WhenProcessingAFlag_AnErrorIsReturned() { var id = 8; var flag = new RedFlag { Id = id, Status = RedFlagStatus.Pending }; var flags = Enumerable.Range(0, 100) .Select(i => i == id ? flag : new RedFlag { Id = i }); contextMock.SetupGet(c => c.RedFlags).Returns(flags.ToDbSet()); var newStatus = RedFlagStatus.Resolved; authorizationServiceMock.Setup(r => r.HasRole(GlobalRole.Admin)).Returns(false); var response = controller.UpdateStatus(id, newStatus); Assert.IsInstanceOfType(response, typeof(UnauthorizedResult)); Assert.AreEqual(RedFlagStatus.Pending, flag.Status); contextMock.Verify(r => r.SaveChanges(), Times.Never); }
public void GivenANonAdminNonSubmitterNonEntityOwnerUser_WhenGettingAnUnprocessedFlag_AnErrorIsReturned() { var id = 7; var submitter = 6; var entity = 5; var fakeFlag = new RedFlag { Id = id, Status = RedFlagStatus.AwaitingEntityInput, Submitter = submitter, EntityId = entity }; var flags = Enumerable.Range(0, 100) .Select(r => r == id ? fakeFlag : new RedFlag { Id = r }); contextMock.SetupGet(r => r.RedFlags).Returns(flags.ToDbSet()); authorizationServiceMock.Setup(r => r.HasRole(GlobalRole.Admin)).Returns(false); authorizationServiceMock.Setup(r => r.GetUserId()).Returns(4); authorizationServiceMock.Setup(r => r.HasRole(entity, EntityRole.Owner)).Returns(false); var response = controller.GetFlag(id); Assert.IsInstanceOfType(response, typeof(UnauthorizedResult)); }
public void GivenAUser_WhenGettingAProcessedFlag_TheFlagIsReturned() { var id = 7; var fakeFlag = new RedFlag { Id = id, Status = RedFlagStatus.Resolved }; var flags = Enumerable.Range(0, 100) .Select(r => r == id ? fakeFlag : new RedFlag { Id = r }); contextMock.SetupGet(r => r.RedFlags).Returns(flags.ToDbSet()); var response = controller.GetFlag(id); Assert.IsInstanceOfType(response, typeof(JsonResult)); var jsonResult = response as JsonResult; Assert.IsInstanceOfType(jsonResult.Value, typeof(RedFlag)); var model = jsonResult.Value as RedFlag; Assert.AreEqual(fakeFlag, model); }