Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
 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);
        }
Esempio n. 8
0
        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);
        }