public void IsPreyHunter_GoodPreyWrongHunter_ShouldThrow()
        {
            //Arrange
            var fakeTargetsList = new List <TargetElement>()
            {
                new TargetElement
                {
                    Id             = 1,
                    HunterPersonId = 56,
                    PreyPersonId   = 57,
                    IsHunted       = true
                }
            };

            var fakeDbSetTargetElements = UnitTestsUtil.SetupFakeDbSet(fakeTargetsList.AsQueryable());
            var fakeDatabaseContext     = A.Fake <DatabaseContext>();

            A.CallTo(() => fakeDatabaseContext.TargetElements).Returns(fakeDbSetTargetElements);

            var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>();

            A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext())
            .Returns(fakeDatabaseContext);

            var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration);

            var expectedHunterPersonId = 71;
            var expectedPreyPersonId   = 57;

            //Act and assert
            Assert.Throws <ManagerException>(() =>
                                             targetElementHelper.IsPreyHunted(expectedHunterPersonId, expectedPreyPersonId), StorageErrorMessages.TargetNotFoundError);

            A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened();
        }
示例#2
0
        public IHttpActionResult IsPreyHunted([FromBody] TargetElement targetElement)
        {
            try
            {
                return(Json(TargetElementHelper.IsPreyHunted(targetElement.HunterPersonId, targetElement.PreyPersonId)));
            }

            catch (ManagerException targetNotFoundException) when(targetNotFoundException.ErrorCode ==
                                                                  StorageErrorMessages.TargetNotFoundError)
            {
                return(BadRequest(StorageErrorMessages.TargetNotFoundError));
            }
        }
        public void IsPreyHunted_ShouldReturnTrue()
        {
            var elementToRemove = new TargetElement()
            {
                Id             = 1,
                HunterPersonId = 100,
                PreyPersonId   = 101,
                IsHunted       = false
            };
            //Arrange
            var fakeTargetsList = new List <TargetElement>()
            {
                elementToRemove
            };

            var fakeDbSetTargetElements = UnitTestsUtil.SetupFakeDbSet(fakeTargetsList.AsQueryable());
            var fakeDatabaseContext     = A.Fake <DatabaseContext>();

            A.CallTo(() => fakeDatabaseContext.TargetElements).Returns(fakeDbSetTargetElements);

            var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>();

            A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext())
            .Returns(fakeDatabaseContext);

            var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration);

            var expectedHunterPersonId = 100;
            var expectedPreyPersonId   = 101;

            //Act
            var result = targetElementHelper.IsPreyHunted(expectedHunterPersonId, expectedPreyPersonId);

            //Assert
            A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened();
            A.CallTo(() => fakeDbSetTargetElements.Remove(elementToRemove)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeDatabaseContext.SaveChanges()).MustHaveHappenedOnceExactly();

            result.ShouldBe(true);
        }