示例#1
0
        public async Task ProcessMessage_ExceptionRetrievingSalesforceFranchiseData()
        {
            // ARRANGE
            var appCache                         = (IAppCache)_context.Properties["appCache"];
            var loggerMock                       = new Mock <ILogger <SalesforceMessageProcessor> >();
            var tokenServiceMock                 = new Mock <IHISCTokenService>();
            var programDataServiceMock           = new Mock <IProgramDataService>();
            var timeZoneServiceMock              = new Mock <ITimeZoneService>();
            var salesforceUserPublishServiceMock = new Mock <ISalesforceUserService>();

            var unitUnderTest = new SalesforceMessageProcessor(appCache,
                                                               loggerMock.Object,
                                                               tokenServiceMock.Object,
                                                               programDataServiceMock.Object,
                                                               timeZoneServiceMock.Object,
                                                               salesforceUserPublishServiceMock.Object);

            tokenServiceMock.Setup(mock => mock.RetrieveToken())
            .Throws <System.IO.IOException>()
            .Verifiable();

            var salesforceUser = new AzureActiveDirectoryUser
            {
                Address         = "11218 John Galt Blvd.",
                FranchiseNumber = "100"
            };

            // ACT
            await unitUnderTest.ProcessUser(salesforceUser);
        }
示例#2
0
        public async Task ProcessMessage_SuccessSyncUserWithClearCareOperatingSystem()
        {
            // ARRANGE
            var appCache                         = (IAppCache)_context.Properties["appCache"];
            var loggerMock                       = new Mock <ILogger <SalesforceMessageProcessor> >();
            var tokenServiceMock                 = new Mock <IHISCTokenService>();
            var programDataServiceMock           = new Mock <IProgramDataService>();
            var timeZoneServiceMock              = new Mock <ITimeZoneService>();
            var salesforceUserPublishServiceMock = new Mock <ISalesforceUserService>();

            var unitUnderTest = new SalesforceMessageProcessor(appCache,
                                                               loggerMock.Object,
                                                               tokenServiceMock.Object,
                                                               programDataServiceMock.Object,
                                                               timeZoneServiceMock.Object,
                                                               salesforceUserPublishServiceMock.Object);

            var salesforceFranchises = new[]
            {
                100
            };
            var clearCareFranchises = new[]
            {
                100
            };

            var token = "TOKEN";

            tokenServiceMock.Setup(mock => mock.RetrieveToken())
            .ReturnsAsync(token)
            .Verifiable();
            programDataServiceMock.Setup(mock => mock.RetrieveFranchises(ProgramDataSources.Salesforce, token, true))
            .ReturnsAsync(salesforceFranchises)
            .Verifiable();
            programDataServiceMock.Setup(mock => mock.RetrieveFranchises(ProgramDataSources.ClearCare, token, true))
            .ReturnsAsync(clearCareFranchises)
            .Verifiable();

            var timeZone = "Americas/NewYork";

            timeZoneServiceMock.Setup(mock => mock.RetrieveTimeZoneAndPopulateUsersCountryCode(It.IsAny <AzureActiveDirectoryUser>()))
            .ReturnsAsync(timeZone)
            .Verifiable();

            var salesforceUser = new AzureActiveDirectoryUser
            {
                Address         = "11218 John Galt Blvd.",
                FranchiseNumber = "100"
            };

            // ACT
            await unitUnderTest.ProcessUser(salesforceUser);

            // ASSERT
            tokenServiceMock.Verify();
            programDataServiceMock.Verify();
            timeZoneServiceMock.Verify();
            salesforceUserPublishServiceMock.Verify(mock => mock.Publish(It.IsAny <SalesforceUser>()));
        }