public void GetMobileAppSettings_ReturnsSameInstance()
        {
            // Arrange
            MobileAppSettingsProvider settingsProvider = new MobileAppSettingsProvider();

            // Act
            MobileAppSettingsDictionary settings1 = settingsProvider.GetMobileAppSettings();
            MobileAppSettingsDictionary settings2 = settingsProvider.GetMobileAppSettings();

            // Assert
            Assert.Same(settings1, settings2);
        }
        public void GetMobileAppSettings_SetsAllKnownProperties()
        {
            // Arrange
            MobileAppSettingsProvider settingsProvider = new MobileAppSettingsProvider();

            // Act
            MobileAppSettingsDictionary actual = settingsProvider.GetMobileAppSettings();

            // Assert
            PropertyInfo[] properties = typeof(MobileAppSettingsDictionary).GetProperties();
            foreach (PropertyInfo p in properties)
            {
                // Skipping dictionary accessors
                if (p.Name == "Item")
                {
                    continue;
                }

                if (p.CanWrite)
                {
                    MethodInfo isSet  = isSetMethod.MakeGenericMethod(p.PropertyType);
                    bool       result = (bool)isSet.Invoke(this, new object[] { p.GetValue(actual) });
                    Assert.True(result, string.Format("Property '{0}' was not set. Please ensure that the value is present in app.config for this test project and that the MobileAppSettingsProvider sets the value.", p.Name));
                }
            }

            Assert.True(actual.Connections.Count > 0);
        }
        public void GetMobileAppSettings_SetsCustomProperties()
        {
            // Arrange
            MobileAppSettingsProvider settingsProvider = new MobileAppSettingsProvider();

            // Act
            MobileAppSettingsDictionary actual = settingsProvider.GetMobileAppSettings();

            // Assert
            Assert.Equal(actual["SampleKey"], "SampleValue");
        }