Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 5
0
        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})");
        }
Esempio n. 6
0
        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());
        }
Esempio n. 8
0
        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);
        }