public void CreateContext_AttributeKey_Wins(string attributeKey, string configKey, string expectedKey) { // Arrange var attribute = new EasyTableAttribute { ApiKey = attributeKey }; var handler = new TestHandler(); var config = new EasyTablesConfiguration { MobileAppUri = new Uri("https://someuri"), ApiKey = configKey, ClientFactory = new TestMobileServiceClientFactory(handler) }; // Act var context = EasyTableAttributeBindingProvider.CreateContext(config, attribute, null); // Assert // Issue a request to check the header that's being sent. context.Client.GetTable("Test").LookupAsync("123"); IEnumerable <string> values = null; string actualKey = null; if (handler.IssuedRequest.Headers.TryGetValues("ZUMO-API-KEY", out values)) { actualKey = values.Single(); } Assert.Equal(expectedKey, actualKey); }
public void CreateContext_AttributeUri_Wins(string attributeUriString, string configUriString, string expectedUriString) { // Arrange var attribute = new EasyTableAttribute { MobileAppUri = attributeUriString }; var mockFactory = new Mock <IMobileServiceClientFactory>(); mockFactory .Setup(f => f.CreateClient(new Uri(expectedUriString), null)) .Returns <IMobileServiceClient>(null); var config = new EasyTablesConfiguration { MobileAppUri = new Uri(configUriString), ClientFactory = mockFactory.Object }; // Act EasyTableAttributeBindingProvider.CreateContext(config, attribute, null); // Assert mockFactory.VerifyAll(); }
public EasyTableAttributeBindingProviderTests() { _jobConfig = new JobHostConfiguration(); _easyTableConfig = new EasyTablesConfiguration() { MobileAppUri = new Uri("http://someuri") }; }
public void Resolve_FallsBackToNull() { // Arrange ClearEnvironment(); // Act var mobileAppUri = EasyTablesConfiguration.GetSettingFromConfigOrEnvironment(NeitherKey); // Assert Assert.Null(mobileAppUri); }
public void Resolve_UsesEnvironment_Second() { // Arrange SetEnvironment(EnvironmentKey); // Act var mobileAppUri = EasyTablesConfiguration.GetSettingFromConfigOrEnvironment(EnvironmentKey); // Assert Assert.Equal("https://fromenvironment/", mobileAppUri.ToString()); ClearEnvironment(); }
public void Resolve_UsesAppSettings_First() { // Arrange SetEnvironment(AppSettingKey); // Act var mobileAppUri = EasyTablesConfiguration.GetSettingFromConfigOrEnvironment(AppSettingKey); // Assert Assert.Equal("https://fromappsettings/", mobileAppUri.ToString()); ClearEnvironment(); }
/// <summary> /// Enables use of the EasyTable extensions. /// </summary> /// <param name="config">The <see cref="JobHostConfiguration"/> to configure.</param> /// <param name="easyTablesConfig">The <see cref="EasyTablesConfiguration"/> to use.</param> public static void UseEasyTables(this JobHostConfiguration config, EasyTablesConfiguration easyTablesConfig = null) { if (config == null) { throw new ArgumentNullException("config"); } if (easyTablesConfig == null) { easyTablesConfig = new EasyTablesConfiguration(); } config.RegisterExtensionConfigProvider(easyTablesConfig); }
protected async Task <JToken> WaitForEasyTableRecordAsync(string tableName, string itemId, string textToMatch = null) { // Get the URI by creating a config. var config = new EasyTablesConfiguration(); var client = new MobileServiceClient(config.MobileAppUri); JToken item = null; var table = client.GetTable(tableName); await TestHelpers.Await(() => { bool result = false; try { item = Task.Run(() => table.LookupAsync(itemId)).Result; if (textToMatch != null) { result = item["Text"].ToString() == textToMatch; } else { result = true; } } catch (AggregateException aggEx) { var ex = (MobileServiceInvalidOperationException)aggEx.InnerException; if (ex.Response.StatusCode != HttpStatusCode.NotFound) { throw; } } return(result); }); return(item); }