コード例 #1
0
        private EnumerationInfo ReadHardEnum(Type enumValueClass, Table table)
        {
            Type enumType = _mapClassToEnum[enumValueClass];

            int displayOrder = 1;

            // note that we process the enum constants in order of the underlying value assigned
            // so that the initial displayOrder reflects the natural ordering
            // (see msdn docs for Enum.GetValues for details)
            return(new EnumerationInfo(enumValueClass.FullName, table.Name, true,
                                       CollectionUtils.Map <object, EnumerationMemberInfo>(Enum.GetValues(enumType),
                                                                                           delegate(object value)
            {
                string code = Enum.GetName(enumType, value);
                FieldInfo fi = enumType.GetField(code);

                EnumValueAttribute attr = AttributeUtils.GetAttribute <EnumValueAttribute>(fi);
                return new EnumerationMemberInfo(
                    code,
                    attr != null ? attr.Value : null,
                    attr != null ? attr.Description : null,
                    displayOrder++,
                    false);
            })));
        }
        private static async Task RefreshUserAsync_ThrowsOnException(HttpStatusCode statusCode, string message)
        {
            string appUrl     = MobileAppUriValidator.DummyMobileApp;
            string refreshUrl = appUrl + ".auth/refresh";
            string userId     = "sid:xxxxxxxxxxxxxxxxx";

            TestHttpHandler hijack = new TestHttpHandler();

            hijack.Response = TestHttpHandler.CreateResponse("error message from Mobile Apps refresh endpoint", statusCode);

            MobileServiceHttpClient.DefaultHandlerFactory = () => hijack;
            MobileServiceClient client = new MobileServiceClient(appUrl, hijack);

            client.CurrentUser = new MobileServiceUser(userId)
            {
                MobileServiceAuthenticationToken = "auth-token"
            };

            MobileServiceInvalidOperationException exception = await AssertEx.Throws <MobileServiceInvalidOperationException>(() => client.RefreshUserAsync());

            Assert.AreEqual(EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken),
                            hijack.Request.Headers.GetValues(MobileServiceHttpClient.ZumoFeaturesHeader).FirstOrDefault());
            Assert.AreEqual(message, exception.Message);
            Assert.IsNotNull(exception.Request);
            Assert.AreEqual(statusCode, exception.Response.StatusCode);
        }
コード例 #3
0
ファイル: EnumHelper.cs プロジェクト: AleksTem/AutoCourses
        public static int GetEnumValueAttribute <TEnum>(Enum value) where TEnum : struct
        {
            // Get the EnumValue attribute value for the enum value
            FieldInfo          fi        = value.GetType().GetField(value.ToString());
            EnumValueAttribute attribute = (EnumValueAttribute)fi.GetCustomAttribute(typeof(EnumValueAttribute), false);

            return(attribute.EnumValue);
        }
        public void AddFeaturesHeader_RequestHeadersIsNull()
        {
            IDictionary <string, string> requestedHeaders = null;

            requestedHeaders = MobileServiceHttpClient.FeaturesHelper.AddFeaturesHeader(requestHeaders: requestedHeaders, features: MobileServiceFeatures.None);
            Assert.IsNull(requestedHeaders);

            requestedHeaders = null;
            requestedHeaders = MobileServiceHttpClient.FeaturesHelper.AddFeaturesHeader(requestHeaders: requestedHeaders, features: MobileServiceFeatures.RefreshToken);
            Assert.AreEqual(EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken), requestedHeaders[MobileServiceHttpClient.ZumoFeaturesHeader]);
        }
コード例 #5
0
 public void ValidateFeatureCodes()
 {
     Assert.AreEqual("TT", EnumValueAttribute.GetValue(MobileServiceFeatures.TypedTable));
     Assert.AreEqual("TU", EnumValueAttribute.GetValue(MobileServiceFeatures.UntypedTable));
     Assert.AreEqual("AT", EnumValueAttribute.GetValue(MobileServiceFeatures.TypedApiCall));
     Assert.AreEqual("AJ", EnumValueAttribute.GetValue(MobileServiceFeatures.JsonApiCall));
     Assert.AreEqual("AG", EnumValueAttribute.GetValue(MobileServiceFeatures.GenericApiCall));
     Assert.AreEqual("TC", EnumValueAttribute.GetValue(MobileServiceFeatures.TableCollection));
     Assert.AreEqual("OL", EnumValueAttribute.GetValue(MobileServiceFeatures.Offline));
     Assert.AreEqual("QS", EnumValueAttribute.GetValue(MobileServiceFeatures.AdditionalQueryParameters));
     Assert.IsNull(EnumValueAttribute.GetValue(MobileServiceFeatures.None));
 }
        public void AddFeaturesHeader_ZumoFeaturesHeaderAlreadyExists()
        {
            IDictionary <string, string> requestedHeaders = new Dictionary <string, string>();

            requestedHeaders.Add("key1", "value1");
            requestedHeaders.Add("key2", "value2");
            requestedHeaders.Add(MobileServiceHttpClient.ZumoFeaturesHeader, EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken));
            Assert.AreEqual(3, requestedHeaders.Count);

            // AddFeaturesHeader won't add anything because ZumoFeaturesHeader already exists
            requestedHeaders = MobileServiceHttpClient.FeaturesHelper.AddFeaturesHeader(requestHeaders: requestedHeaders, features: MobileServiceFeatures.Offline);
            Assert.AreEqual(3, requestedHeaders.Count);
            Assert.AreEqual(EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken), requestedHeaders[MobileServiceHttpClient.ZumoFeaturesHeader]);
        }
        private static async Task RefreshUserAsync_Setup(string alternateLoginUri = null)
        {
            string appUrl          = MobileAppUriValidator.DummyMobileApp;
            string newAuthToken    = "new-auth-token";
            string userId          = "sid:xxxxxxxxxxxxxxxxx";
            string responseContent = "{\"authenticationToken\":\"" + newAuthToken + "\",\"user\":{\"userId\":\"" + userId + "\"}}";

            TestHttpHandler hijack = new TestHttpHandler();

            hijack.Response         = new HttpResponseMessage(HttpStatusCode.OK);
            hijack.Response.Content = new StringContent(responseContent);

            MobileServiceHttpClient.DefaultHandlerFactory = () => hijack;
            MobileServiceClient client = new MobileServiceClient(appUrl, hijack);

            client.CurrentUser = new MobileServiceUser(userId)
            {
                MobileServiceAuthenticationToken = "auth-token"
            };

            string refreshUrl;

            if (!string.IsNullOrEmpty(alternateLoginUri))
            {
                refreshUrl = alternateLoginUri + ".auth/refresh";
                client.AlternateLoginHost = new Uri(alternateLoginUri);
            }
            else
            {
                refreshUrl = appUrl + ".auth/refresh";
            }
            MobileServiceUser user = await client.RefreshUserAsync();

            Assert.AreEqual(EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken),
                            hijack.Request.Headers.GetValues(MobileServiceHttpClient.ZumoFeaturesHeader).FirstOrDefault());
            Assert.AreEqual(hijack.Request.RequestUri.OriginalString, refreshUrl);
            Assert.AreEqual(newAuthToken, user.MobileServiceAuthenticationToken);
            Assert.AreEqual(userId, user.UserId);
        }
 public void Validate_RT_FeatureCode()
 => Assert.Equal("RT", EnumValueAttribute.GetValue(MobileServiceFeatures.RefreshToken));
 public void Validate_QS_FeatureCode()
 => Assert.Equal("QS", EnumValueAttribute.GetValue(MobileServiceFeatures.AdditionalQueryParameters));
 public void Validate_OL_FeatureCode()
 => Assert.Equal("OL", EnumValueAttribute.GetValue(MobileServiceFeatures.Offline));
 public void Validate_TC_FeatureCode()
 => Assert.Equal("TC", EnumValueAttribute.GetValue(MobileServiceFeatures.TableCollection));
 public void Validate_AG_FeatureCode()
 => Assert.Equal("AG", EnumValueAttribute.GetValue(MobileServiceFeatures.GenericApiCall));
 public void Validate_AJ_FeatureCode()
 => Assert.Equal("AJ", EnumValueAttribute.GetValue(MobileServiceFeatures.JsonApiCall));
コード例 #14
0
ファイル: EnumCache.cs プロジェクト: Genbox/SimpleS3
    private string?GetAttributeValue(string name)
    {
        EnumValueAttribute attributes = _type.GetField(name).GetCustomAttribute <EnumValueAttribute>();

        return(attributes?.Value);
    }
 public void Validate_TU_FeatureCode()
 => Assert.Equal("TU", EnumValueAttribute.GetValue(MobileServiceFeatures.UntypedTable));
 public void Validate_FeatureCode_None()
 => Assert.Null(EnumValueAttribute.GetValue(MobileServiceFeatures.None));
コード例 #17
0
ファイル: EnumExtensions.cs プロジェクト: CSX8600/MCSync
        public static string GetValue(this Enum anEnum)
        {
            EnumValueAttribute enumValueAttribute = anEnum.GetAttribute <EnumValueAttribute>();

            return(enumValueAttribute?.Value);
        }
 public void Validate_AT_FeatureCode()
 => Assert.Equal("AT", EnumValueAttribute.GetValue(MobileServiceFeatures.TypedApiCall));