public void ShouldReturnASingleMilestoneById() { //Arrange string expectedSQLStatement = "SELECT * FROM saver.Milestones WHERE Id = @Id;"; Model.Milestone expectedMilestone = new Model.Milestone(1, 100, "Testing 1", null); //Setup the mocks mockDataAccess.Setup ( da => da.ExecuteQuery <Model.Milestone> ( It.Is <string>(val => val.Equals(expectedSQLStatement)), It.Is <Dictionary <string, object> >(val => (int)val["Id"] == expectedMilestone.Id) ) ) .Returns(new Model.Milestone[] { expectedMilestone }); mockSqlStringService.Setup(ss => ss.GetSqlFromResource(It.IsAny <string>())).Returns(expectedSQLStatement); IMilestoneRepository repository = new MilestoneRepository(mockDataAccess.Object, mockSqlStringService.Object); //Act Model.Milestone returnedMilestone = repository.Get(expectedMilestone.Id); //Assert returnedMilestone.Should().NotBeNull(); returnedMilestone.Should().BeEquivalentTo(expectedMilestone); }
public void ShouldDeleteAMilestoneWithAGivenIDAndReturn() { int milestoneId = 2; Model.Milestone deletedMilestone = new Model.Milestone(2, 250d, null, null); string expectedSqlStatement = "DELETE FROM saver.milestons... etc"; mockDataAccess.Setup ( da => da.ExecuteQueryWithGenericParameterType <Model.Milestone> ( It.Is <string>(val => val.Equals(expectedSqlStatement)), It.IsAny <object>() ) ).Returns(new Model.Milestone[] { deletedMilestone }); mockSqlStringService.Setup(ss => ss.GetSqlFromResource(It.IsAny <string>())).Returns(expectedSqlStatement); IMilestoneRepository repository = new MilestoneRepository(mockDataAccess.Object, mockSqlStringService.Object); //Act Model.Milestone milestone = repository.Delete(milestoneId); //Assert milestone.Should().NotBeNull(); milestone.Id.Should().Be(milestoneId); milestone.Should().BeEquivalentTo(deletedMilestone); }
public void ShouldUpdateMilestoneWithNewInformation() { int expectedMilestoneId = 2; Model.Milestone updatedMilestone = new Model.Milestone(2, 250d, null, null); string expectedSqlStatement = "UPDATE saver.milestones SET target = @Target, DateMet = @DateMet, Description = @Description WHERE Id = @Id"; mockDataAccess.Setup ( da => da.ExecuteQueryWithGenericParameterType <Model.Milestone> ( It.Is <string>(val => val.Equals(expectedSqlStatement)), It.IsAny <Model.Milestone>() ) ).Returns(new Model.Milestone[] { updatedMilestone }); mockSqlStringService.Setup(ss => ss.GetSqlFromResource(It.IsAny <string>())).Returns(expectedSqlStatement); IMilestoneRepository repository = new MilestoneRepository(mockDataAccess.Object, mockSqlStringService.Object); //Act Model.Milestone milestone = repository.Update(expectedMilestoneId, updatedMilestone); //Assert milestone.Should().NotBeNull(); milestone.Id.Should().Be(expectedMilestoneId); milestone.Should().BeEquivalentTo(updatedMilestone); }
public Model.Milestone Update(int id, Model.Milestone milestone) { string sql = LoadSqlResources().Values.First(); milestone.Id = id; //Return directly from the update return(typedDataAccess.ExecuteQueryWithGenericParameterType <Model.Milestone>(sql, milestone).FirstOrDefault()); }
public async Task CreateMilestone(Model.Milestone milestone, Octokit.Repository githubRepo) { var newMilestone = new NewMilestone(milestone.Title) { Description = milestone.Description }; var createdMilestone = await GitHubClient.Issue.Milestone.Create(githubRepo.Id, newMilestone); Log($"Milestone '{createdMilestone.Title}' created (Number: {createdMilestone.Number})"); }
public async Task CreateMilestoneIfNotExists(Model.Milestone milestone, Octokit.Repository githubRepo) { var foundMilestone = await GetMilestone(milestone.Title, githubRepo); if (foundMilestone != null) { Log($"Milestone '{foundMilestone.Title}' already exists (Number: {foundMilestone.Number})"); return; } await CreateMilestone(milestone, githubRepo); }
public Model.Milestone CreateForGoal(Model.Milestone milestone, int goalId) { string sql = LoadSqlResources().Values.First(); Dictionary <string, object> parameters = ConvertToParameters ( new { milestone.Target, milestone.Description, milestone.DateMet, GoalId = goalId } ); return(typedDataAccess.ExecuteQuery <Model.Milestone>(sql, parameters).FirstOrDefault()); }
public void ShouldCreateASingleMilestoneForAKnownGoal() { const string expectedDescription = "Testing a milestone"; double expectedTarget = 230d; DateTime expectedDateMet = DateTime.Now; int expectedGoalId = 1; int expectedMilestoneId = 10; Model.Milestone milestone = new Model.Milestone(expectedTarget, expectedDescription, expectedDateMet); Model.Milestone expectedResultandMilestone = new Model.Milestone(expectedMilestoneId, expectedTarget, expectedDescription, expectedDateMet); string expectedSqlStatement = "INSERT INTO saver.Milestone (target, description, datemet, goalid) VALUES (@Target, @Description, @DateMet, @GoalId);"; mockDataAccess.Setup ( da => da.ExecuteQuery <Model.Milestone> ( It.Is <string>(val => val.Equals(expectedSqlStatement)), It.Is <Dictionary <string, object> > ( val => (int)val["GoalId"] == expectedGoalId && (string)val["Description"] == expectedDescription && (double)val["Target"] == expectedTarget && (DateTime?)val["DateMet"] == expectedDateMet ) ) ).Returns(new List <Model.Milestone>() { expectedResultandMilestone }); mockSqlStringService.Setup(ss => ss.GetSqlFromResource(It.IsAny <string>())).Returns(expectedSqlStatement); IMilestoneRepository repository = new MilestoneRepository(mockDataAccess.Object, mockSqlStringService.Object); //Act Model.Milestone returnedMilestone = repository.CreateForGoal(milestone, expectedGoalId); //Assert returnedMilestone.Should().NotBeNull(); returnedMilestone.Id.Should().Be(expectedMilestoneId); returnedMilestone.Should().BeEquivalentTo(expectedResultandMilestone); }