public void TestGetGroupByHashtag()
{
string testTag = "GroupTest123";
int initialTagged = GroupDAO.GetAllGroupsByHashTag(testTag).Count;
int initialTotal = GroupDAO.GetAllGroups().Count;
var owner = new User
{
UserName = "owner",
Age = 25,
City = "Bleaksburg",
Email = "[email protected]",
FirstName = "I.C.",
Gender = "M",
Height = 60,
LastName = "Poorcode",
State = "VA",
Weight = 130
};
var member1 = new User
{
UserName = "member1",
Age = 25,
City = "Bleaksburg",
Email = "[email protected]",
FirstName = "I.C.",
Gender = "M",
Height = 60,
LastName = "Poorcode",
State = "VA",
Weight = 130
};
var member2 = new User
{
UserName = "member2",
Age = 25,
City = "Bleaksburg",
Email = "[email protected]",
FirstName = "I.C.",
Gender = "M",
Height = 60,
LastName = "Poorcode",
State = "VA",
Weight = 130
};
owner.UserID = UserDAO.CreateNewUser(owner, "password");
member1.UserID = UserDAO.CreateNewUser(member1, "password");
member2.UserID = UserDAO.CreateNewUser(member2, "password");
List<string> tags1 = new List<string>(); List<string> tags2 = new List<string>();
tags1.Add(testTag); tags2.Add(testTag);
tags1.Add("searchable"); tags2.Add("searchable");
tags2.Add("hashtags");
Group testGroup1 = new Group("Test1", owner, "This is a Group", tags1);
testGroup1.Join(member1);
testGroup1.ID = GroupDAO.CreateNewGroup(testGroup1);
Group testGroup2 = new Group("Test2", owner, "This is another Group", tags2);
testGroup2.Join(member2);
testGroup2.ID = GroupDAO.CreateNewGroup(testGroup2);
Assert.AreNotEqual(testGroup1.ID, 0);
Assert.AreNotEqual(testGroup2.ID, 0);
List<Group> taggedGroups = GroupDAO.GetAllGroupsByHashTag("hashtags");
Assert.AreEqual(taggedGroups.Count, 1);
Assert.AreEqual(taggedGroups.First().Name, "Test2");
Assert.AreEqual(2, taggedGroups.First().Members.Count);
foreach (User u in taggedGroups.First().Members)
{
Assert.IsNotNull(u);
Assert.AreNotEqual("member1", u.UserName);
}
taggedGroups = GroupDAO.GetAllGroupsByHashTag(testTag);
Assert.AreEqual(taggedGroups.Count, initialTagged + 2);
Assert.AreEqual(taggedGroups.First().Name, "Test1");
Assert.AreEqual(taggedGroups.Last().Name, "Test2");
List<Group> allGroups = GroupDAO.GetAllGroups();
Assert.AreEqual(allGroups.Count, initialTotal + 2);
}