public void GetAll_ExceptionWhenGetResponseStream_ReturnsEmptyList()
        {
            // Arrange
            var webException   = new WebException();
            var webResponse    = CreateWebResponse(webException);
            var webRequest     = CreateWebRequest(webResponse);
            var queryParameter = string.Empty;
            var sfUtilities    = CreateSFUtilities(MasterSuppressedCProperty);

            sfUtilities.Setup(x => x.CreateQueryRequest(
                                  It.IsAny <string>(),
                                  It.IsAny <string>(),
                                  It.IsAny <Method>(),
                                  It.IsAny <ResponseType>()))
            .Returns(webRequest.Object)
            .Callback <string, string, Method, ResponseType>((token, query, method, response) =>
            {
                queryParameter = query;
            });
            sfUtilities.Setup(x => x.LogWebException(It.IsAny <WebException>(), It.IsAny <string>()));
            ECN_Framework_Entities.Salesforce.SalesForceBase.InitializeSFUtilities(sfUtilities.Object);

            // Act
            var contactsList = SF_Contact.GetAll(string.Empty);

            // Assert
            contactsList.ShouldBeEmpty();
            sfUtilities.Verify(x => x.LogWebException(webException, queryParameter), Times.Once());
        }
        public void GetSingle_PassCorrectParams_ReturnsNotNullEntity()
        {
            // Arrange
            const string whereParam      = "where";
            const string token           = "accessToken";
            const string contactId       = "Id";
            var          expectedContact = new SF_Contact()
            {
                Id = contactId
            };
            var sfUtilities = new Mock <ECN_Framework_Entities.Salesforce.Interfaces.ISFUtilities>();

            sfUtilities.Setup(x => x.GetSingle <SF_Contact>(token, whereParam, It.IsAny <ContactConverter>())).Returns(expectedContact);
            ECN_Framework_Entities.Salesforce.SalesForceBase.InitializeSFUtilities(sfUtilities.Object);

            // Act
            var result = SF_Contact.GetSingle(token, whereParam);

            // Assert
            result.ShouldBe(expectedContact);
            sfUtilities.Verify(
                x => x.GetSingle <SF_Contact>(
                    It.Is <string>(t => t == token),
                    It.Is <string>(id => id == whereParam),
                    It.IsAny <ContactConverter>()),
                Times.Once);
        }
        public void GetAll_TwoResponsesOneWithFalseDoneAndOneWithTrueDoneBothHasMasterSuppressedC_ReturnsListWithTwoItems()
        {
            // Arrange
            var webResponse = CreateWebResponse(MasterSuppressedCProperty);
            var webRequest  = CreateWebRequest(webResponse);
            var sfUtilities = CreateSFUtilities(MasterSuppressedCProperty);

            sfUtilities.Setup(x => x.CreateQueryRequest(
                                  It.IsAny <string>(),
                                  It.IsAny <string>(),
                                  It.IsAny <Method>(),
                                  It.IsAny <ResponseType>())).Returns(webRequest.Object);
            ECN_Framework_Entities.Salesforce.SalesForceBase.InitializeSFUtilities(sfUtilities.Object);

            // Act
            var contactsList = SF_Contact.GetAll(string.Empty);

            // Assert
            contactsList.ShouldNotBeNull();
            contactsList.Count.ShouldBe(2);
            sfUtilities.VerifyAll();
        }