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 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);
        }
Esempio n. 3
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. 4
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);
        }