public OAuthModel GetOAuthModel(OAuthAppsettingsModel oAuthAppsettingsModel, System.DateTime dateTimeNow, IElapsedTimeService elapsedTimeService, IEncodingService encodingService) { var consumerKey = !string.IsNullOrEmpty(oAuthAppsettingsModel.ConsumerKey) ? oAuthAppsettingsModel.ConsumerKey : Environment.GetEnvironmentVariable("CONSUMER_KEY"); var consumerSecret = !string.IsNullOrEmpty(oAuthAppsettingsModel.ConsumerSecret) ? oAuthAppsettingsModel.ConsumerSecret : Environment.GetEnvironmentVariable("CONSUMER_SECRET"); var accessToken = !string.IsNullOrEmpty(oAuthAppsettingsModel.AccessToken) ? oAuthAppsettingsModel.AccessToken : Environment.GetEnvironmentVariable("ACCESS_TOKEN"); var tokenSecret = !string.IsNullOrEmpty(oAuthAppsettingsModel.TokenSecret) ? oAuthAppsettingsModel.TokenSecret : Environment.GetEnvironmentVariable("TOKEN_SECRET"); var timeStamp = elapsedTimeService .UnixEpoch(dateTimeNow) .ToString(); var nonce = encodingService .ToBase64String(timeStamp); var oAuthModel = new OAuthModel() { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, AccessToken = accessToken, TokenSecret = tokenSecret, TimeStamp = timeStamp, Nonce = nonce }; if (oAuthModel.IsNullOrEmpty()) { throw new Exception("OAuthModel IsNullOrEmpty, check keys in appsettings.json or provide keys in environment variables."); } return(oAuthModel); }
public void GetOAuthModel_given_null_or_empty_parameter_data_and_EnvironmentVariables_not_set_should_throw_Exception( string consumerKey, string consumerSecret, string accessToken, string tokenSecret, double mockUnixEpoch, string mockToBase64String) { // Arrange var oAuthAppsettingsModel = new OAuthAppsettingsModel() { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, AccessToken = accessToken, TokenSecret = tokenSecret }; var dateTimeNow = System.DateTime.Now; var mockElapsedTimeService = new Mock <IElapsedTimeService>(); var mockEncodingService = new Mock <IEncodingService>(); IAuthorizationModelService classUnderTest = new AuthorizationModelService(); mockElapsedTimeService .Setup(x => x.UnixEpoch(dateTimeNow)) .Returns(mockUnixEpoch); mockEncodingService .Setup(x => x.ToBase64String(It.IsAny <string>())) .Returns(mockToBase64String); // Act // Assert Assert.Throws <Exception>(() => classUnderTest.GetOAuthModel( oAuthAppsettingsModel, dateTimeNow, mockElapsedTimeService.Object, mockEncodingService.Object)); }
public void GetOAuthModel_given_valid_data_should_return_valid_OAuthModel() { // Arrange var consumerKey = "consumerKey"; var consumerSecret = "consumerSecret"; var accessToken = "accessToken"; var tokenSecret = "tokenSecret"; var timeStamp = 1579220112d; var nonce = "ShPKxisPFC0"; var dateTimeNow = System.DateTime.Now; var oAuthAppsettingsModel = new OAuthAppsettingsModel() { AccessToken = accessToken, ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, TokenSecret = tokenSecret }; var expected = new OAuthModel() { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, AccessToken = accessToken, TokenSecret = tokenSecret, TimeStamp = timeStamp.ToString(), Nonce = nonce }; IAuthorizationModelService classUnderTest = new AuthorizationModelService(); var mockElapsedTimeService = new Mock <IElapsedTimeService>(); var mockEncodingService = new Mock <IEncodingService>(); mockElapsedTimeService .Setup(x => x.UnixEpoch(dateTimeNow)) .Returns(timeStamp); mockEncodingService .Setup(x => x.ToBase64String(timeStamp.ToString())) .Returns(nonce); // Act var actual = classUnderTest.GetOAuthModel( oAuthAppsettingsModel, dateTimeNow, mockElapsedTimeService.Object, mockEncodingService.Object); // Assert actual.Should().BeEquivalentTo(expected); }