public void Update_ReturnsNull_WhenZeroDatabaseRowsAffected()
        {
            Mock<IDbDataParameter> mockParameter = new Mock<IDbDataParameter>();
            Mock<IDataParameterCollection> mockParameterCollection = new Mock<IDataParameterCollection>();
            Mock<IDbCommand> mockCommand = new Mock<IDbCommand>();
            mockCommand.Setup(cmd => cmd.ExecuteNonQuery()).Returns(0);
            mockCommand.Setup(cmd => cmd.CreateParameter()).Returns(mockParameter.Object);
            mockCommand.Setup(cmd => cmd.Parameters).Returns(mockParameterCollection.Object);
            Mock<IDbConnection> mockConnection = new Mock<IDbConnection>();
            mockConnection.Setup(conn => conn.CreateCommand()).Returns(mockCommand.Object);

            HobbitDataManager dataManager = new HobbitDataManager(mockConnection.Object);

            Hobbit hobbit = dataManager.Update(_testHobbit, ID);

            Assert.Null(hobbit);
            mockCommand.Verify(cmd => cmd.ExecuteNonQuery(), Times.Once);
        }
        public void Update_ReturnsNull_WhenNameIsNull()
        {
            Hobbit testHobbit = new Hobbit(null, FAMILY_NAME, BIRTH_YEAR, DEATH_YEAR, ID);

            HobbitDataManager dataManager = new HobbitDataManager();

            Hobbit hobbit = dataManager.Update(testHobbit, ID);

            Assert.Null(hobbit);
        }
        public void Update_ReturnsHobbit_WhenUsingDefaultValues(
            string name,
            string familyName,
            int birthYear,
            int deathYear,
            long id)
        {
            Hobbit testHobbit = new Hobbit("Update " + name, familyName, birthYear, deathYear, id);

            HobbitDataManager dataManager = new HobbitDataManager();
            Hobbit insertedHobbit = dataManager.Insert(testHobbit);

            Hobbit updatedHobbit = new Hobbit(
                           "Updated and updated " + insertedHobbit.Name,
                           insertedHobbit.FamilyName,
                           insertedHobbit.BirthYear,
                           insertedHobbit.DeathYear,
                           insertedHobbit.Id);
            Hobbit hobbit = dataManager.Update(updatedHobbit, updatedHobbit.Id);

            Assert.NotNull(hobbit);
            Assert.True(CompareHobbits(updatedHobbit, hobbit));
        }
        public void Update_ReturnsUpdatedHobbit()
        {
            Hobbit testHobbit = new Hobbit("Insert hobbit", FAMILY_NAME, BIRTH_YEAR, DEATH_YEAR, ID);

            HobbitDataManager dataManager = new HobbitDataManager();
            Hobbit insertedHobbit = dataManager.Insert(testHobbit);

            Hobbit updatedHobbit = new Hobbit(
                "Inserted and updated" + insertedHobbit.Name,
                insertedHobbit.FamilyName,
                insertedHobbit.BirthYear,
                insertedHobbit.DeathYear,
                insertedHobbit.Id);
            Hobbit hobbit = dataManager.Update(updatedHobbit, updatedHobbit.Id);

            Assert.True(CompareHobbits(updatedHobbit, hobbit));
        }