public void AssignRandomTarget_ShouldThrow_TargetAlreadyAssigned() { //Arrange var targetsList = new List <TargetElement>() { new TargetElement() { Id = 1, HunterPersonId = 2, PreyPersonId = 3, IsHunted = false } }.AsQueryable(); var fakeTargetsDbSet = UnitTestsUtil.SetupFakeDbSet(targetsList); var fakeDatabaseContext = A.Fake <DatabaseContext>(); A.CallTo(() => fakeDatabaseContext.TargetElements).Returns(fakeTargetsDbSet); var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>(); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()) .Returns(fakeDatabaseContext); var databaseElementHelper = A.Fake <IDatabaseImageElementHelper>(); var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration, databaseElementHelper); //Act and assert Assert.Throws <ManagerException>(() => targetElementHelper.AssignRandomTarget(2), StorageErrorMessages.TargetAlreadyAssignedError); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened(); }
public void GetTargetById_ShouldThrow() { //Arrange var expectedId = 0; var expectedHunterId = 1; var expectedPreyId = 2; var expectedBoolean = false; var fakeIQueryable = new List <TargetElement>() { new TargetElement() { Id = expectedId, HunterPersonId = expectedHunterId, PreyPersonId = expectedPreyId, IsHunted = expectedBoolean } }.AsQueryable(); var fakeDbSet = UnitTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeDbContext = A.Fake <DatabaseContext>(); A.CallTo(() => fakeDbContext.TargetElements).Returns(fakeDbSet); var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>(); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).Returns(fakeDbContext); var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration); //Act and assert Assert.Throws <ManagerException>(() => targetElementHelper.GetTargetByUserId(500), StorageErrorMessages.TargetNotPresentAtLaunchError); }
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(); }
public void AssignRandomTarget_ShouldReturnAssignedId() { //Arrange var expectedPreyId = 2; var expectedHunterId = 10; var dbElementsList = new List <DatabaseImageElement>() { new DatabaseImageElement() { Id = expectedPreyId, DescriptiveSentence = "test", ImageContentUri = "test", ImageName = "test", PersonFirstName = "test", PersonLastName = "test", Score = 1 }, new DatabaseImageElement() { Id = expectedPreyId, DescriptiveSentence = "test", ImageContentUri = "test", ImageName = "test", PersonFirstName = "test", PersonLastName = "test", Score = 1 } }; var fakeDbSetImageElements = UnitTestsUtil.SetupFakeDbSet(dbElementsList.AsQueryable()); var fakeDbSetTargetElements = UnitTestsUtil.SetupFakeDbSet(new List <TargetElement>().AsQueryable()); var fakeDatabaseContext = A.Fake <DatabaseContext>(); A.CallTo(() => fakeDatabaseContext.DatabaseImageElements).Returns(fakeDbSetImageElements); A.CallTo(() => fakeDatabaseContext.TargetElements).Returns(fakeDbSetTargetElements); var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>(); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()) .Returns(fakeDatabaseContext); var databaseElementHelper = A.Fake <IDatabaseImageElementHelper>(); var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration, databaseElementHelper); A.CallTo(() => databaseElementHelper.GetAllImages()).Returns(dbElementsList); //Act var result = targetElementHelper.AssignRandomTarget(expectedHunterId); //Assert result.ShouldBe(expectedPreyId); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened(); }
public IHttpActionResult GetTargetById(int id) { try { return(Json(TargetElementHelper.GetTargetByUserId(id))); } catch (ManagerException targetException) when(targetException.ErrorCode == StorageErrorMessages.TargetNotPresentAtLaunchError) { return(BadRequest(StorageErrorMessages.TargetNotPresentAtLaunchError)); } }
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 InsertNewTargetElement_ShouldReturn() { //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); //Act var expectedId = 2; var expectedHunterPersonId = 10; var expectedPreyPersonId = 11; var expectedIsHunter = false; var result = targetElementHelper.InsertNewTargetElement(expectedId, expectedHunterPersonId, expectedPreyPersonId); //Assert A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened(); A.CallTo(() => fakeDbSetTargetElements.Add(result)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDatabaseContext.SaveChanges()).MustHaveHappenedOnceExactly(); result.Id.ShouldBe(expectedId); result.HunterPersonId.ShouldBe(expectedHunterPersonId); result.PreyPersonId.ShouldBe(expectedPreyPersonId); result.IsHunted.ShouldBe(expectedIsHunter); }
public void GetTargetById_ShouldReturnExcepted() { //Arrange var expectedId = 0; var expectedHunterId = 1; var expectedPreyId = 2; var expectedBoolean = false; var fakeIQueryable = new List <TargetElement>() { new TargetElement() { Id = expectedId, HunterPersonId = expectedHunterId, PreyPersonId = expectedPreyId, IsHunted = expectedBoolean } }.AsQueryable(); var fakeDbSet = UnitTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeDbContext = A.Fake <DatabaseContext>(); A.CallTo(() => fakeDbContext.TargetElements).Returns(fakeDbSet); var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>(); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).Returns(fakeDbContext); var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration); //Act var result = targetElementHelper.GetTargetByUserId(expectedHunterId); //Assert A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappenedOnceExactly(); result.Id.ShouldBe(expectedId); result.HunterPersonId.ShouldBe(expectedHunterId); result.PreyPersonId.ShouldBe(expectedPreyId); result.IsHunted.ShouldBe(expectedBoolean); }
public void AssignRandomTarget_ShouldThrow_NoPlayers() { //Arrange var dbElementsList = new List <DatabaseImageElement>() { new DatabaseImageElement() { Id = 1, DescriptiveSentence = "test", ImageContentUri = "test", ImageName = "test", PersonFirstName = "test", PersonLastName = "test", Score = 1 } }; var fakeDbSetImageElements = UnitTestsUtil.SetupFakeDbSet(dbElementsList.AsQueryable()); var fakeDbSetTargetElements = UnitTestsUtil.SetupFakeDbSet(new List <TargetElement>().AsQueryable()); var fakeDatabaseContext = A.Fake <DatabaseContext>(); A.CallTo(() => fakeDatabaseContext.DatabaseImageElements).Returns(fakeDbSetImageElements); A.CallTo(() => fakeDatabaseContext.TargetElements).Returns(fakeDbSetTargetElements); var fakeDbContextGeneration = A.Fake <IDatabaseContextGeneration>(); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()) .Returns(fakeDatabaseContext); var databaseElementHelper = A.Fake <IDatabaseImageElementHelper>(); A.CallTo(() => databaseElementHelper.GetAllImages()).Returns(fakeDbSetImageElements); var targetElementHelper = new TargetElementHelper(fakeDbContextGeneration, databaseElementHelper); //Act and assert Assert.Throws <ManagerException>(() => targetElementHelper.AssignRandomTarget(10), StorageErrorMessages.ThereAreNoPlayersError); A.CallTo(() => fakeDbContextGeneration.BuildDatabaseContext()).MustHaveHappened(); }
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); }
public IHttpActionResult AssignRandomTarget(int id) { try { return(Json(TargetElementHelper.AssignRandomTarget(id))); } catch (ManagerException targetExistsException) when(targetExistsException.ErrorCode == StorageErrorMessages.TargetAlreadyAssignedError) { return(BadRequest(StorageErrorMessages.TargetAlreadyAssignedError)); } catch (ManagerException noPlayersException) when(noPlayersException.ErrorCode == StorageErrorMessages.ThereAreNoPlayersError) { return(BadRequest(StorageErrorMessages.ThereAreNoPlayersError)); } catch (ManagerException targetNotAssignedException) when(targetNotAssignedException.ErrorCode == StorageErrorMessages.TargetNotAssignedError) { return(BadRequest(StorageErrorMessages.TargetAlreadyAssignedError)); } }
public IHttpActionResult Post([FromBody] TargetElement targetElement) { targetElement = TargetElementHelper.InsertNewTargetElement(targetElement.Id, targetElement.HunterPersonId, targetElement.PreyPersonId, targetElement.IsHunted); return(Json(targetElement)); }