public void User_DeleteUserBucketListItems_OnlyDeleteBucketListItems_Test()
        {
            var             userName = "******";
            IBucketListData bd       = new BucketListData(this.GetDbContext(true), this.userHelper);
            List <User>     users    = new List <User>();

            var userId1 = bd.AddUser(GetUser("token1", userName));
            var userId2 = bd.AddUser(GetUser("token2", userName));
            var userId3 = bd.AddUser(GetUser("token3", userName));

            bd.AddToken(userId1, "token1");
            bd.AddToken(userId2, "token2");
            bd.AddToken(userId3, "token3");

            var bucketListItems = GetBucketListItems();

            foreach (var bucketListItem in bucketListItems)
            {
                bd.UpsertBucketListItem(bucketListItem, userName);
            }

            AssertUsersExist(true, true, bd, userName);

            bd.DeleteUserBucketListItems(userName, true);

            var bucketListItemSaved = bd.GetBucketList(userName);

            Assert.IsFalse(bucketListItemSaved.Count > 0);
            var savedUsers = bd.GetUsers("testUser");

            Assert.IsTrue(savedUsers.Count > 0);
        }
        public void User_DeleteUserBucketListItems_UserName_DeleteMultiple_Test()
        {
            var             userName = "******";
            IBucketListData bd       = new BucketListData(this.GetDbContext(true), this.userHelper);
            List <User>     users    = new List <User>();

            var userId1 = bd.AddUser(GetUser("token1", userName));
            var userId2 = bd.AddUser(GetUser("token2", userName));
            var userId3 = bd.AddUser(GetUser("token3", userName));

            bd.AddToken(userId1, "token1");
            bd.AddToken(userId2, "token2");
            bd.AddToken(userId3, "token3");

            var bucketListItems = GetBucketListItems();

            foreach (var bucketListItem in bucketListItems)
            {
                bd.UpsertBucketListItem(bucketListItem, userName);
            }

            AssertUsersExist(true, true, bd, userName);

            bd.DeleteUserBucketListItems(userName, false);

            AssertUsersExist(false, true, bd, userName);
        }
        public void User_DeleteUser_UserName_DeleteMultiple_Test()
        {
            var             userName = "******";
            IBucketListData bd       = new BucketListData(this.GetDbContext(true), this.userHelper);

            bd.AddToken(bd.AddUser(GetUser("token1", userName)), "token1");
            bd.AddToken(bd.AddUser(GetUser("token2", userName)), "token2");
            bd.AddToken(bd.AddUser(GetUser("token3", userName)), "token3");

            AssertUsersExist(true, false, bd, userName);

            bd.DeleteUserBucketListItems(userName, false);

            AssertUsersExist(false, false, bd, userName);
        }
        public void BucketListItem_HappyPath_Test()
        {
            // set up ------------------------------------------------------
            RemoveTestUser();

            var             user = GetUser("token");
            IBucketListData bd   = new BucketListData(this.GetDbContext(true), this.userHelper);
            var             bucketListItemToSave = GetBucketListItem();

            // test ---------------------------------------------------------
            var userId = bd.AddUser(user);

            bd.UpsertBucketListItem(bucketListItemToSave, user.UserName);
            var savedBucketListItem = bd.GetBucketList(user.UserName).FirstOrDefault();

            // we have a saved object that object matches our created object
            Assert.IsNotNull(savedBucketListItem);
            Assert.AreEqual(bucketListItemToSave.Name, savedBucketListItem.Name);
            Assert.AreEqual(bucketListItemToSave.Created, savedBucketListItem.Created);
            Assert.AreEqual(bucketListItemToSave.Category, savedBucketListItem.Category);
            Assert.AreEqual(bucketListItemToSave.Achieved, savedBucketListItem.Achieved);
            Assert.AreEqual(bucketListItemToSave.Latitude, savedBucketListItem.Latitude);
            Assert.AreEqual(bucketListItemToSave.Longitude, savedBucketListItem.Longitude);

            // we can update that object and save it
            // TODO - upsert update part not working...fix
            savedBucketListItem.Name = savedBucketListItem.Name + " modified";
            bd.UpsertBucketListItem(savedBucketListItem, user.UserName);
            var savedBucketListItemUpdated = bd.GetBucketList(user.UserName).FirstOrDefault();

            Assert.AreEqual(savedBucketListItem.Name, savedBucketListItemUpdated.Name);

            // we can delete the bucket list item
            bd.DeleteBucketListItem(savedBucketListItemUpdated.Id.Value);
            var deletedBucketListItem = bd.GetBucketList(user.UserName).FirstOrDefault();

            Assert.IsNotNull(savedBucketListItem);

            //clean up user
            bd.DeleteUser(userId);
        }
        public void User_HappyPath_Test()
        {
            RemoveTestUser();

            var             token = "token";
            var             user  = GetUser(token);
            IBucketListData bd    = new BucketListData(this.GetDbContext(true), this.userHelper);


            var userId = bd.AddUser(user);

            bd.AddToken(userId, token);

            var savedUser = bd.GetUser(userId);

            Assert.AreEqual(user.UserName, savedUser.UserName);
            Assert.AreEqual(user.Password, savedUser.Password);
            Assert.AreEqual(user.Salt, savedUser.Salt);
            Assert.AreEqual(user.Email, savedUser.Email);
            Assert.AreEqual(token, savedUser.Token);

            bd.DeleteUser(savedUser.UserId);
        }