public void TestCreateGroup()
        {
            //Create user1
            UserProfileDetails user1Details = new UserProfileDetails("testUserName1", "testLastName1", "*****@*****.**", "en", "US");
            long userId = userService.RegisterUser("testLogin1", "passwordtest1", user1Details);

            //User1 creates group
            long             group1Id  = recommendationGroupService.CreateGroup("tesNameGroup1", "testDescriptionGroup1", "testLogin1");
            List <DTOGroups> AllGroups = recommendationGroupService.ShowAllGroups();
            int countAllGroups         = AllGroups.Count;

            Assert.AreEqual(countAllGroups, 1);

            //User1 creates 2 groups
            long group2Id = recommendationGroupService.CreateGroup("tesNameGroup2", "testDescriptionGroup2", "testLogin1");

            AllGroups      = recommendationGroupService.ShowAllGroups();
            countAllGroups = AllGroups.Count;

            Assert.AreEqual(countAllGroups, 2);

            long group3Id = recommendationGroupService.CreateGroup("tesNameGroup3", "testDescriptionGroup3", "testLogin1");

            AllGroups      = recommendationGroupService.ShowAllGroups();
            countAllGroups = AllGroups.Count;
            Assert.AreEqual(countAllGroups, 3);

            //Check group information
            DTOGroups group1 = AllGroups[0];
            DTOGroups group2 = AllGroups[1];
            DTOGroups group3 = AllGroups[2];

            Assert.AreEqual(group1.group_usersId, group1Id);
            Assert.AreEqual(group2.group_usersId, group2Id);
            Assert.AreEqual(group3.group_usersId, group3Id);

            Assert.AreEqual("testDescriptionGroup1", group1.gr_description);
            Assert.AreEqual("testDescriptionGroup2", group2.gr_description);
            Assert.AreEqual("testDescriptionGroup3", group3.gr_description);

            Assert.AreEqual(group1.gr_name, "tesNameGroup1");
            Assert.AreEqual(group2.gr_name, "tesNameGroup2");
            Assert.AreEqual(group3.gr_name, "tesNameGroup3");

            ////Check user is the group owner
            //Assert.AreEqual(group1.gr_login_owner, "testLogin1");
            //Assert.AreEqual(group2.gr_login_owner, "testLogin1");
            //Assert.AreEqual(group3.gr_login_owner, "testLogin1");

            ////Check owner is into users group list
            //ICollection<UserProfile> usersGroup1 = group1.UsersOnGroup;

            //Assert.AreEqual(usersGroup1.Count, 1);
            //foreach (var usr in usersGroup1)
            //{
            //    Assert.AreEqual(usr.userId, userId);
            //    Assert.AreEqual(usr.loginName, "testLogin1");
            //    Assert.AreEqual(usr.lastName, "testLastName1");
            //}
        }
        public void TestCreateGroupVariousUsers()
        {
            //Create user1
            UserProfileDetails user1Details = new UserProfileDetails("testUserName1", "testLastName1", "*****@*****.**", "en", "US");
            long userId = userService.RegisterUser("testLogin1", "passwordtest1", user1Details);
            //Create user2
            UserProfileDetails user2Details = new UserProfileDetails("testUserName2", "testLastName2", "*****@*****.**", "en", "US");
            long user2Id = userService.RegisterUser("testLogin2", "passwordtest2", user2Details);
            //Create user3
            UserProfileDetails user3Details = new UserProfileDetails("testUserName3", "testLastName3", "*****@*****.**", "en", "US");
            long user3Id = userService.RegisterUser("testLogin3", "passwordtest1", user3Details);
            //Create user4
            UserProfileDetails user4Details = new UserProfileDetails("testUserName4", "testLastName4", "*****@*****.**", "en", "US");
            long user4Id = userService.RegisterUser("testLogin4", "passwordtest4", user4Details);

            //User1 creates group
            long             group1Id  = recommendationGroupService.CreateGroup("tesNameGroup1", "testDescriptionGroup1", "testLogin1");
            List <DTOGroups> AllGroups = recommendationGroupService.ShowAllGroups();

            //All Users(4) on Group1
            recommendationGroupService.AddUserToGroup("testLogin2", group1Id);
            recommendationGroupService.AddUserToGroup("testLogin3", group1Id);
            recommendationGroupService.AddUserToGroup("testLogin4", group1Id);

            //Check 4 users on group
            AllGroups = recommendationGroupService.ShowAllGroups();
            DTOGroups groupTmp = AllGroups[0];

            //ICollection<UserProfile> usersOnGroup = groupTmp.UsersOnGroup;

            //Assert.AreEqual(usersOnGroup.Count, 4);

            //Check Users info
            //List<UserProfile> userList = new List<UserProfile>(usersOnGroup);
            //UserProfile user1 = userList[0];
            //UserProfile user2 = userList[1];
            //UserProfile user3 = userList[2];
            //UserProfile user4 = userList[3];

            //Assert.AreEqual(user1.userId, userId);
            //Assert.AreEqual(user2.userId, user2Id);
            //Assert.AreEqual(user3.userId, user3Id);
            //Assert.AreEqual(user4.userId, user4Id);

            //User3 abandon Group
            recommendationGroupService.AbandonGroup("testLogin3", group1Id);

            //Check Users on group
            AllGroups = recommendationGroupService.ShowAllGroups();
            //usersOnGroup = groupTmp.UsersOnGroup;
            //Assert.AreEqual(usersOnGroup.Count, 3);

            ////Check Users info
            //userList = new List<UserProfile>(usersOnGroup);
            //user1 = userList[0];
            //user2 = userList[1];
            //user4 = userList[2];

            //Assert.AreEqual(user1.userId, userId);
            //Assert.AreEqual(user2.userId, user2Id);
            //Assert.AreEqual(user4.userId, user4Id);
        }