public void UsersRepositoryLoadTaskListAssociatedUsersCallsLoadAndGetFromTheUnitOfWork()
        {
            // Arrange
            var user = new User { PartitionKey = User1PartitionKey, RowKey = User1RowKey };
            var user1Entity = new UserEntity(User1PartitionKey, User1RowKey);
            var user3Entity = new UserEntity(User3PartitionKey, User3RowKey);
            var taskList = new TaskList("Test title", user) { PartitionKey = TaskList1PartitionKey, RowKey = _taskList1RowKey };
            var unitOfWorkMock = new Mock<IUnitOfWork>();
            unitOfWorkMock.Setup(u => u.Load("TaskListShares", It.IsAny<Expression<Func<TaskListShareEntity, bool>>>())).Returns(BuildTaskListSharesTable());
            unitOfWorkMock.Setup(u => u.Get<UserEntity>("Users", User1PartitionKey, User1RowKey)).Returns(user1Entity);
            unitOfWorkMock.Setup(u => u.Get<UserEntity>("Users", User3PartitionKey, User3RowKey)).Returns(user3Entity);
            var repository = new UsersRepository(unitOfWorkMock.Object);

            // Act
            repository.LoadShare(taskList);

            // Assert
            Assert.IsTrue(taskList.Share.Count == 2);
            unitOfWorkMock.Verify(uow => uow.Load("TaskListShares", It.IsAny<Expression<Func<TaskListShareEntity, bool>>>()), Times.Once());
            unitOfWorkMock.Verify(uow => uow.Get<UserEntity>("Users", User1PartitionKey, User1RowKey), Times.Once());
            unitOfWorkMock.Verify(uow => uow.Get<UserEntity>("Users", User3PartitionKey, User3RowKey), Times.Once());
        }
        public void UsersRepositoryLoadTaskListOwnerCallsLoadAndGetFromTheUnitOfWork()
        {
            // Arrange
            var userEntity = new UserEntity(User1PartitionKey, User1RowKey);
            var taskList = new TaskList { PartitionKey = TaskList1PartitionKey, RowKey = _taskList1RowKey };
            var unitOfWorkMock = new Mock<IUnitOfWork>();
            unitOfWorkMock.Setup(u => u.Get<UserEntity>("Users", User1PartitionKey, User1RowKey)).Returns(userEntity);
            var repository = new UsersRepository(unitOfWorkMock.Object);

            // Act
            repository.LoadOwner(taskList);

            // Assert
            Assert.IsNotNull(taskList.Owner);
            unitOfWorkMock.Verify(uow => uow.Get<UserEntity>("Users", User1PartitionKey, User1RowKey), Times.Once());
        }
        public void UsersRepositoryGetCallsGetFromTheUnitOfWorkAndReturnsAExistingUser()
        {
            // Arrange
            var user = new UserEntity { PartitionKey = User1PartitionKey, RowKey = User1RowKey };
            var unitOfWorkMock = new Mock<IUnitOfWork>();
            unitOfWorkMock.Setup(u => u.Get<UserEntity>("Users", User1PartitionKey, User1RowKey)).Returns(user);
            var repository = new UsersRepository(unitOfWorkMock.Object);

            // Act
            var result = repository.Get(User1PartitionKey, User1RowKey);

            // Assert
            Assert.IsNotNull(result);
            unitOfWorkMock.Verify(uow => uow.Get<UserEntity>("Users", User1PartitionKey, User1RowKey), Times.Once());
        }