TEST(RemoveListTest, RemoveListTest1){ Students* students = new Students(); std::vector<std::string> names; names.push_back("Andre"); names.push_back("Jim"); names.push_back("Quinn"); //students->addUser("Andre", 0); //students->addUser("Jim", 1); //students->addUser("Quinn", 2); for(int i = 0; i < 3; i++){ students->addUser(names[i], i); } students->addUser("Joe", 4); students->addUser("Billy", 5); students->addUser("Bob", 6); EXPECT_EQ(6, students->numberOfNames()); EXPECT_TRUE(students->nameExists("Quinn")); EXPECT_TRUE(students->nameExists("Andre")); EXPECT_TRUE(students->nameExists("Jim")); students->removeList(names); EXPECT_FALSE(students->nameExists("Quinn")); EXPECT_FALSE(students->nameExists("Andre")); EXPECT_FALSE(students->nameExists("Jim")); EXPECT_EQ(3, students->numberOfNames()); delete students; }
TEST(AddUser, AddUserTest3){ Students* students = new Students(); int user_count = 0; for(; user_count < 10; user_count++) students->addUser("Student " + std::to_string(user_count), user_count); EXPECT_EQ(user_count, students->numberOfNames()); students->removeStudent("Student 0"); students->removeStudent("Student 1"); user_count -= 2; EXPECT_EQ(user_count, (int)students->numberOfNames()); Students* moreStudents = new Students(); moreStudents->addUser("Jim", 11); moreStudents->addUser("Jim", 12); EXPECT_NE(2, (int)moreStudents->numberOfNames()); //should be 2 instead of 1. //it is possible to have 2 names with different IDs. //however, when 2 names with different IDs are present, //the map only updates the numberOfNames once. EXPECT_EQ(12, moreStudents->idForName("Jim")); moreStudents->removeStudent("Jim"); //since Jim was in 2 spots in the map, he should be deleted at both spots? //this is true, and the count is correct here. When Jim is deleted, he gets //deleted at both spots. EXPECT_EQ(0, (int)moreStudents->numberOfNames()); delete students; delete moreStudents; }
TEST(NameExistsTest, NameExistsTest1){ Students* students = new Students(); uint id = 0; std::string quinn = "Quinn"; std::string phone = "801"; char grade = 'A'; students->addUser("Quinn", id); students->addUser("Andre", 1); students->addUser("Jim", 2); students->addUser("Bob", 3); students->addPhoneNumbers(students->idForName("Quinn"), "801"); students->addGrade(id, 'A'); EXPECT_TRUE(students->fullRecord(quinn, id, phone, grade)); EXPECT_EQ(4, students->numberOfNames()); EXPECT_TRUE(students->nameExists("Quinn")); students->removeStudent("Quinn"); EXPECT_EQ(3, students->numberOfNames()); EXPECT_FALSE(students->nameExists("Quinn")); EXPECT_FALSE(students->fullRecord(quinn, id, phone, grade)); delete students; }
TEST(AddUser, AddUserTest6){ Students* students = new Students(); students->addUser("Quinn", 0); students->addUser("Quinn", 0); EXPECT_EQ(1, students->numberOfNames()); delete students; }
TEST(AddUser, AddUserTest4){ Students* students = new Students(); students->addUser("Andre", 12); students->addUser("Andre", 13); EXPECT_EQ(13, students->idForName("Andre")); EXPECT_EQ(1, students->numberOfNames()); students->addUser("Quinn", 21); students->addUser("Quinn", 23); EXPECT_EQ(23, students->idForName("Quinn")); EXPECT_EQ(2, students->numberOfNames()); // No two users should ever have the same ID students->addUser("Quinn", 13); EXPECT_EQ(2, students->numberOfNames()); EXPECT_EQ(13, students->idForName("Quinn")); //here, 2 users have the same ID with different names. EXPECT_NE(students->idForName("Andre"), students->idForName("Quinn")); delete students; }
//specific tests for AddUser that dont really have to do with edge cases. TEST(AddUser, AddUserTest2){ Students* students = new Students(); // Overwrites the user's place students->addUser("Quinn", 0); students->addUser("Andre", 0); EXPECT_EQ(0, students->idForName("Andre")); students->addUser("David Johnson", 3); EXPECT_EQ(3, students->idForName("David Johnson")); //here, the test fails because the AddUser method is a little messed up. //we want to have only 1 person with the ID of 0, no matter the name. //instead we get Quinn, who was added first, then Andre was added in his place //and finally David Johnson was added last. When overwritting an ID, the count //of how many people on the map is not updated properly. EXPECT_EQ(2, students->numberOfNames()); delete students; }
TEST(RemoveStudentTest, RemoveStudentTest1){ Students* students = new Students(); students->addUser("Jimmy", 5); students->removeStudent("Jimmy"); EXPECT_EQ(0, students->numberOfNames()); EXPECT_THROW(students->removeStudent("Billy"), std::out_of_range); // TODO: Figure this out std::vector<std::string> someNames(); //someNames.push_back("Jimmy"); //someNames.push_back("Bobby"); //EXPECT_NO_THROW(students->removeList(someNames)); delete students; }
TEST(AddPhoneNumber, AddPhoneNumberTest3){ Students* students = new Students(); students->addUser("Steve", 21); EXPECT_EQ(21, students->idForName("Steve")); students->addPhoneNumbers(students->idForName("Steve"), "##"); EXPECT_EQ("##", students->phoneForName("Steve")); students->addUser("Quinn", 0); students->addUser("Andre", 1); students->addPhoneNumbers(0, ""); students->addPhoneNumbers(0, " "); students->addPhoneNumbers(1, "907"); EXPECT_EQ(" ", students->phoneForName("Quinn")); EXPECT_EQ("907", students->phoneForName("Andre")); EXPECT_NE(students->phoneForName("Quinn"), students->phoneForName("Andre")); EXPECT_EQ(3, students->numberOfNames()); delete students; }