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);
        }
Ejemplo n.º 2
0
        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);
        }