public void GetUserTimelineFromExistingUserIdentifier_ReturnsQuery()
        {
            // Arrange
            var queryGenerator = CreateTimelineQueryGenerator();
            _fakeUserQueryValidator.ArrangeCanUserBeIdentified(_fakeUserIdentifier, true);

            // Act
            var result = queryGenerator.GetUserTimelineQuery(_fakeUserTimelineQueryParameters);

            // Assert
            Assert.AreEqual(result, _expectedUserTimelineQuery);
        }
        public void UpdateRelationshipAuthorizations_WithValidUserDTO_AuthorizationsObjectIsValid_ValidQuery()
        {
            // Arrange
            var queryGenerator = CreateFrienshipQueryGenerator();
            var userDTO        = A.Fake <IUserDTO>();

            _fakeUserQueryValidator.ArrangeCanUserBeIdentified(userDTO, true);
            _fakeUserQueryParameterGenerator.ArrangeGenerateIdOrScreenNameParameter();

            // Act
            var result1 = queryGenerator.GetUpdateRelationshipAuthorizationsWithQuery(userDTO, GenerateFriendshipAuthorizations(true, true));
            var result2 = queryGenerator.GetUpdateRelationshipAuthorizationsWithQuery(userDTO, GenerateFriendshipAuthorizations(true, false));
            var result3 = queryGenerator.GetUpdateRelationshipAuthorizationsWithQuery(userDTO, GenerateFriendshipAuthorizations(false, true));
            var result4 = queryGenerator.GetUpdateRelationshipAuthorizationsWithQuery(userDTO, GenerateFriendshipAuthorizations(false, false));

            // Assert
            string idParameter = UserQueryGeneratorHelper.GenerateParameterExpectedResult(userDTO);

            Assert.AreEqual(result1, GenerateUpdateQuery(true, true, idParameter));
            Assert.AreEqual(result2, GenerateUpdateQuery(true, false, idParameter));
            Assert.AreEqual(result3, GenerateUpdateQuery(false, true, idParameter));
            Assert.AreEqual(result4, GenerateUpdateQuery(false, false, idParameter));

            _fakeUserQueryValidator.CallsTo(x => x.ThrowIfUserCannotBeIdentified(userDTO)).MustHaveHappened(Repeated.Exactly.Times(4));
        }
        public void GetUserTimelineFromInvalidUserIdentifier_ThrowArgumentException()
        {
            // Arrange
            var queryGenerator = CreateTimelineQueryGenerator();

            _fakeUserQueryValidator.ArrangeCanUserBeIdentified(_fakeUserIdentifier, false);

            // Act
            try
            {
                queryGenerator.GetUserTimelineQuery(_fakeUserTimelineQueryParameters);
            }
            catch (ArgumentException)
            {
                return;
            }

            // Assert
            Assert.Fail();
        }