0

I am trying to test my add method using JUnit. When I add a person with his/her first name starting with a capital letter, I get a org.junit.ComparisonFailure when I put the person's name as an expected value, but with their name starting with a small letter.

Here is my implementation

@Override
public boolean addPerson(String personId, String personFirstName, String personLastName, String personNationality, String personPassportNumber, String personGender, String personPhoneNumber, String personEmailAddress) throws SQLException {
    String sql = "INSERT INTO person(person_id, person_firstname, person_lastname, person_nationality, person_passportNumber, person_gender, person_phonenumber, person_emailaddress) values(?,?,?,?,?,?,?,?) ";

    try {
        PreparedStatement preparedStatement = this.connection.prepareStatement(sql);
        preparedStatement.setString(1, personId);
        preparedStatement.setString(2, personFirstName);
        preparedStatement.setString(3, personLastName);
        preparedStatement.setString(4, personNationality);
        preparedStatement.setString(5, personPassportNumber);
        preparedStatement.setString(6, personGender);
        preparedStatement.setString(7, personPhoneNumber);
        preparedStatement.setString(8, personEmailAddress);

        int lines = preparedStatement.executeUpdate();

        preparedStatement.close();
        return lines > 0;
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
}

Here is my @Test method

@Test
public void addPerson() throws SQLException {
    PersonDAOImpl personDAOImpl = new PersonDAOImpl();
    Person person = new Person("20225008", "Maxwell", "Tyson", "USA", "US878789", "M", "1876722392", "tyson@gmail.com");
    personDAOImpl.addPerson(person.getPersonId(), person.getPersonFirstName(), person.getPersonLastName(), person.getPersonNationality(), person.getPersonPassportNumber(), person.getPersonGender(), person.getPersonPhoneNumber(), person.getPersonEmailAddress());
    assertEquals("Person with ID: " + person.getPersonId(), "maxwell", personDAOImpl.findPerson(person.getPersonId()).getPersonFirstName());
}

Here is the error that I get

org.junit.ComparisonFailure: Person with ID: 20225008 
Expected :maxwell
Actual   :Maxwell

Is there a way I can get this test to pass?

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
Sycan
  • 37
  • 8

1 Answers1

0

use import

import org.hamcrest.text.IsEqualIgnoringCase;

replace

assertEquals("Person with ID: " + person.getPersonId(), "maxwell", personDAOImpl.findPerson(person.getPersonId()).getPersonFirstName());

with

assertThat("Person with ID: " + person.getPersonId(), "maxwell", IsEqualIgnoringCase.equalToIgnoringCase(personDAOImpl.findPerson(person.getPersonId()).getPersonFirstName()));
Nidhi257
  • 754
  • 1
  • 5
  • 23