Example #1
0
 public static EnumerableNode CreateNode(IValue value,
                                         Options options = null, Mode mode           = Mode.Deserialize,
                                         Type type       = null, CachedMember member = null)
 {
     return(new EnumerableNode(new Context(options ?? Options.Create(), mode, "xml"), null,
                               value, member, null));
 }
Example #2
0
 public MemberDefinition(CachedMember member, string name, IValue value)
 {
     Name = name;
     Value = value;
     Member = member;
     IsNodeType = value.SpecifiedType.Type.CanBeCastTo<INode>();
 }
Example #3
0
        public override ValueTask <MemberUpdatedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, GuildMemberUpdateJsonModel model)
        {
            CachedMember oldMember = null;
            IMember      newMember = null;

            if (CacheProvider.TryGetMembers(model.GuildId, out var memberCache))
            {
                if (memberCache.TryGetValue(model.User.Value.Id, out var member))
                {
                    newMember = member;
                    var oldUser = member.SharedUser.Clone() as CachedSharedUser;
                    oldMember            = member.Clone() as CachedMember;
                    oldMember.SharedUser = oldUser;
                    newMember.Update(model);
                }
                else if (CacheProvider.TryGetUsers(out var userCache))
                {
                    newMember = Dispatcher.GetOrAddMember(userCache, memberCache, model.GuildId, model);
                }
            }

            newMember ??= new TransientMember(Client, model.GuildId, model);

            var e = new MemberUpdatedEventArgs(oldMember, newMember);

            return(new(e));
        }
Example #4
0
            public async Task MuteAsync(CachedMember member, [Remainder] string?reason = null)
            {
                if (member.Id == Context.User.Id)
                {
                    Context.Command.ResetCooldowns();
                    return;
                }

                if (member.Id == Context.Guild !.OwnerId)
                {
                    await ReplyErrorAsync(Localization.AdministrationCannotMuteOwner);

                    return;
                }

                if (Context.CurrentMember !.CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAboveMe);

                    return;
                }

                if (((CachedMember)Context.User).CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAbove);

                    return;
                }

                await Service.MuteUserAsync(Context.Channel, (CachedMember)Context.User, member, reason);
            }
Example #5
0
 public AdminCommandResult GetNickname([Remainder] CachedMember target)
 {
     return(string.IsNullOrWhiteSpace(target.Nick)
         ? CommandSuccessLocalized("user_no_nickname", args: Markdown.Bold(target.Tag.Sanitize()))
         : CommandSuccessLocalized("user_nickname",
                                   args: new object[] { Markdown.Bold(target.Tag.Sanitize()), Markdown.Bold(target.Nick.Sanitize()) }));
 }
Example #6
0
 public MemberContext(CachedMember member, Context context)
 {
     Member = member;
     Format = context.Format;
     Mode   = context.Mode;
     Type   = member.Type.Type;
 }
Example #7
0
        public async Task ListCharactersAsync(CachedMember user)
        {
            var characters = DbContext.Database.Users.FirstOrDefault(u => u.Id == user.Id)?.Characters;

            var embed = new LocalEmbedBuilder()
                        .WithTitle($"{user.DisplayName}'s characters:");

            if (characters is null || !characters.Any())
            {
                embed.WithDescription($"They have no characters.");
                await ReplyAsync(embed : embed.Build());

                return;
            }

            var sb = new StringBuilder();

            foreach (var character in characters)
            {
                sb.AppendLine($"{character.CharacterName} | {character.Class} | {character.Role}");
            }

            embed.WithDescription(sb.ToString());
            await ReplyAsync(embed : embed.Build());
        }
Example #8
0
        public void should_indicate_if_is_a_field(CachedMember cachedMember, MemberInfo memberInfo)
        {
            var isField = memberInfo.MemberType == MemberTypes.Field;

            cachedMember.IsField.ShouldEqual(isField);
            cachedMember.IsProperty.ShouldEqual(!isField);
        }
Example #9
0
 public static EnumerableNode CreateNode(object enumerable,
                                         Options options = null, Mode mode           = Mode.Deserialize,
                                         Type type       = null, CachedMember member = null)
 {
     return(CreateNode(new SimpleValue(enumerable, (type ?? enumerable.GetType()).ToCachedType()),
                       options, mode, type, member));
 }
Example #10
0
 public MemberDefinition(CachedMember member, string name, IValue value)
 {
     Name       = name;
     Value      = value;
     Member     = member;
     IsNodeType = value.SpecifiedType.Type.CanBeCastTo <INode>();
 }
Example #11
0
        public async Task AddAssignableRoleAsync(CachedMember member)
        {
            var currentMember = member.Guild.CurrentMember;

            if (!currentMember.Permissions.ManageRoles)
            {
                return;
            }

            if (member.Roles.Count > 1)
            {
                return;
            }

            using var scope = RiasBot.CreateScope();
            var db      = scope.ServiceProvider.GetRequiredService <RiasDbContext>();
            var guildDb = await db.Guilds.FirstOrDefaultAsync(x => x.GuildId == member.Guild.Id);

            if (guildDb is null)
            {
                return;
            }

            var aar = member.Guild.GetRole(guildDb.AutoAssignableRoleId);

            if (aar is null)
            {
                return;
            }

            if (currentMember.CheckRoleHierarchy(aar) > 0 && !aar.IsManaged && member.GetRole(aar.Id) is null)
            {
                await member.GrantRoleAsync(aar.Id);
            }
        }
        public async Task HugAsync([Remainder] CachedMember member)
        {
            if (string.IsNullOrEmpty(Credentials.WeebServicesToken))
            {
                await ReplyErrorAsync(Localization.ReactionsNoWeebApi);

                return;
            }

            var embed = new LocalEmbedBuilder
            {
                Color    = RiasUtilities.ConfirmColor,
                ImageUrl = await Service.GetReactionUrlAsync("hug"),
                Footer   = new LocalEmbedFooterBuilder().WithText($"{GetText(Localization.ReactionsPoweredBy)} weeb.sh")
            };

            if (member.Id == Context.User.Id)
            {
                await Context.Channel.SendMessageAsync(GetText(Localization.ReactionsHugYou, Context.User.Mention), embed : embed.Build());
            }
            else
            {
                var user = ((CachedMember)Context.User).Nick ?? Context.User.Name;
                await Context.Channel.SendMessageAsync(GetText(Localization.ReactionsHuggedBy, member.Mention, user), embed : embed.Build());
            }
        }
 private static string GetName(CachedMember member, Action<NamingConventions<ArrayItemContext>> config)
 {
     var convention = ArrayItemConventions.Create();
     config(convention);
     return convention.GetName(new ArrayItemContext(ModelType, member, 
         new Context(Options, Mode.Deserialize, "xml")));
 }
Example #14
0
            public async Task SetNicknameAsync(CachedMember user, [Remainder] string?nickname = null)
            {
                if (user.Id == Context.Guild !.OwnerId)
                {
                    await ReplyErrorAsync(Localization.AdministrationNicknameOwner);

                    return;
                }

                if (Context.CurrentMember !.CheckHierarchy(user) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAboveMe);

                    return;
                }

                if (((CachedMember)Context.User).CheckHierarchy(user) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAbove);

                    return;
                }

                await user.ModifyAsync(x => x.Nick = nickname);

                if (string.IsNullOrEmpty(nickname))
                {
                    await ReplyConfirmationAsync(Localization.AdministrationNicknameRemoved, user);
                }
                else
                {
                    await ReplyConfirmationAsync(Localization.AdministrationNicknameChanged, user, nickname);
                }
            }
Example #15
0
 public MemberContext(CachedMember member, Context context)
 {
     Member = member;
     Format = context.Format;
     Mode = context.Mode;
     Type = member.Type.Type;
 }
            public async Task SoftBanAsync(CachedMember member, [Remainder] string?reason = null)
            {
                if (member.Id == Context.User.Id)
                {
                    return;
                }

                if (member.Id == Context.Guild !.OwnerId)
                {
                    await ReplyErrorAsync(Localization.AdministrationCannotSoftbanOwner);

                    return;
                }

                if (Context.CurrentMember !.CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAboveMe);

                    return;
                }

                if (((CachedMember)Context.User).CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAbove);

                    return;
                }

                await SendMessageAsync(member, Localization.AdministrationUserSoftBanned, Localization.AdministrationKickedFrom, reason);

                await member.BanAsync(reason, 7);

                await member.UnbanAsync();
            }
Example #17
0
                public async ValueTask <AdminCommandResult> SetNicknameAsync([RequireHierarchy] CachedMember target,
                                                                             [Remainder, MustBe(StringLength.ShorterThan, 33)] string newNickname)
                {
                    await target.ModifyAsync(x => x.Nick = newNickname);

                    return(CommandSuccessLocalized("user_nickname_updated"));
                }
Example #18
0
        public static ObjectNodeBase CreateDeserializable(string name, IValue @object, INode parent,
            Context context, CachedMember member = null)
        {
            var type = @object.SpecifiedType;
            var kind = GetTypeKind(type, context.Options);

            if (kind == TypeKind.Simple)
            {
                if (parent == null) throw new TypeNotSupportedException("simple type",
                    @object.SpecifiedType, Mode.Deserialize, "complex types");
                return new ValueNode(context, name, @object, member, parent);
            }

            Func<object> factory = () => ObjectFactory.CreateInstance(type,
                context.Options.Deserialization.ObjectFactory, parent.MapOrDefault(x => x.Value));

            if (member == null || parent == null) @object.Instance = factory();
            else @object = ValueFactory.Create(@object, factory);

            switch (kind)
            {
                case TypeKind.Dictionary: return new DictionaryNode(context, name, @object, member, parent);
                case TypeKind.Enumerable: return new EnumerableNode(context, name, @object, member, parent);
                default: return new ObjectNode(context, name, @object, member, parent);
            }
        }
Example #19
0
        private string GetMemberName(CachedMember member, Options options)
        {
            var context       = new Context(options, Mode.Serialize, FileNode.NodeFormat);
            var memberContext = new MemberContext(member, context);

            return(member.IsField ? options.FieldNameConventions.GetName(memberContext) :
                   options.PropertyNameConventions.GetName(memberContext));
        }
        private static string GetName(CachedMember member, Action <NamingConventions <ArrayItemContext> > config)
        {
            var convention = ArrayItemNamingConventions.Create();

            config(convention);
            return(convention.GetName(new ArrayItemContext(ModelType, member,
                                                           new Context(Options, Mode.Deserialize, "xml"))));
        }
Example #21
0
 public ArrayItemContext(CachedType type, CachedMember member, Context context)
 {
     Type    = type;
     Member  = member;
     Format  = context.Format;
     Options = context.Options;
     Mode    = context.Mode;
 }
Example #22
0
 private string FormatUser(CachedMember target)
 {
     return(string.IsNullOrWhiteSpace(target.Nick)
         ? target.Format()
         : Localize("user_search_format", Markdown.Bold(target.Tag.Sanitize()),
                    Markdown.Bold(target.Nick.Sanitize()),
                    Markdown.Code(target.Id.ToString())));
 }
Example #23
0
 public MemberValue(IValue value, CachedMember member, Func<CachedType, bool> useActualType)
 {
     _value = value;
     _member = member;
     var type = member.Type;
     SpecifiedType = useActualType(type) && Instance != null ? Instance.ToCachedType() : type;
     IsReadonly = _member.IsReadonly;
 }
Example #24
0
 public void should_get_value(CachedMember cachedMember, MemberInfo memberInfo)
 {
     var @object = new Members();
     @object.SetPropertyOrFieldValue(memberInfo.Name,
         memberInfo.GetPropertyOrFieldType() == typeof(string) ?
             "hai" : (object)(Optional<string>)"hai");
     cachedMember.GetValue(@object).As<string>().ShouldEqual("hai");
 }
Example #25
0
 public ArrayItemContext(CachedType type, CachedMember member, Context context)
 {
     Type = type;
     Member = member;
     Format = context.Format;
     Options = context.Options;
     Mode = context.Mode;
 }
Example #26
0
        public async Task KickAsync(
            [Description("Member to kick")] CachedMember member,
            [Description("Reason of the kick")][Remainder] string reason)
        {
            await member.KickAsync(RestRequestOptions.FromReason(reason));

            await RespondEmbedAsync($"{member.FullName()} was kicked. ({reason})");
        }
Example #27
0
        public void should_get_value(CachedMember cachedMember, MemberInfo memberInfo)
        {
            var @object = new Members();

            @object.SetPropertyOrFieldValue(memberInfo.Name,
                                            memberInfo.GetPropertyOrFieldType() == typeof(string) ?
                                            "hai" : (object)(Optional <string>) "hai");
            cachedMember.GetValue(@object).As <string>().ShouldEqual("hai");
        }
Example #28
0
 public EnumContext(object value, Type type, CachedMember member, Context context)
 {
     Value = value;
     Type = type;
     Member = member;
     Format = context.Format;
     Options = context.Options;
     Mode = context.Mode;
 }
Example #29
0
        public CachedMember GetCached(Type type, string identifier)
        {
            CachedMember cached   = null;
            ulong        hashCode = Hash(type, identifier);

            _map.TryGetValue(hashCode, out cached);

            return(cached);
        }
 public void should_add_generic_field_name_convention(
     CachedMember member, bool hasMember, string itemName)
 {
     GetName(member, x => x.Add(
                 (n, c) => {
         n.ShouldEqual(itemName);
         c.Options.ShouldEqual(Options);
         return("yada");
     })).ShouldEqual("yada");
 }
Example #31
0
 public MuteContext(CachedGuild guild, CachedMember moderator, CachedMember member, IMessageChannel channel, string?reason)
 {
     Guild         = guild;
     GuildId       = guild.Id;
     Moderator     = moderator;
     Member        = member;
     UserId        = member.Id;
     SourceChannel = channel;
     Reason        = reason;
 }
Example #32
0
 public ValueNode(
     Context context,
     string name,
     IValue source,
     CachedMember member,
     INode parent)
     : base(name, source, member, parent, context)
 {
     _friendlyParseMessages = Context.Options.Deserialization.FriendlyParseErrorMessages;
 }
Example #33
0
        public void should_set_value(CachedMember cachedMember, MemberInfo memberInfo)
        {
            var @object = new Members();

            cachedMember.SetValue(@object, "hai");
            var value = @object.GetPropertyOrFieldValue(memberInfo.Name);

            (memberInfo.GetPropertyOrFieldType() == typeof(string) ? "hai" :
             (string)(Optional <string>)value).ShouldEqual("hai");
        }
Example #34
0
 public ValueNode(
     Context context,
     string name,
     IValue source,
     CachedMember member,
     INode parent,
     int?index = null)
     : base(name, source, member, parent, context, index)
 {
     _friendlyParseMessages = Context.Options.Deserialization.FriendlyParseErrorMessages;
 }
Example #35
0
        public void should_pass_member_info_to_array_item_name_convention_when_enumerating()
        {
            var member = new CachedMember(typeof(ArrayItemMember).GetProperty("SomeProperty"));
            var node   = CreateNodeOfType(new List <string> {
                "oh", "hai"
            },
                                          mode: Mode.Serialize, member: member);
            var nodes = node.ToList();

            nodes.ShouldNotBeEmpty();
            nodes.ShouldAllMatch(x => x.Name == "item");
        }
Example #36
0
        public MemberValue(IValue value, CachedMember member,
                           Func <CachedType, bool> useActualType)
        {
            _value  = value;
            _member = member;
            var type = member.Type;

            SpecifiedType = useActualType(type) && Instance != null?
                            Instance.ToCachedType() : type;

            IsReadonly = _member.IsReadonly;
        }
        public override async Task RewardAsync(CachedMember member)
        {
            foreach (var id in AddedRoleIds)
            {
                await member.GrantRoleAsync(id);
            }

            foreach (var id in RemovedRoleIds)
            {
                await member.RevokeRoleAsync(id);
            }
        }
Example #38
0
        public override ValueTask <MessageReceivedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, MessageJsonModel model)
        {
            CachedMember    author  = null;
            IGatewayMessage message = null;

            if (model.GuildId.HasValue && !model.WebhookId.HasValue && model.Member.HasValue &&
                Client.CacheProvider.TryGetUsers(out var userCache) &&
                Client.CacheProvider.TryGetMembers(model.GuildId.Value, out var memberCache))
            {
                model.Member.Value.User = model.Author;
                author = Dispatcher.GetOrAddMember(userCache, memberCache, model.GuildId.Value, model.Member.Value);
                foreach (var memberModel in model.Mentions.Select(static x =>
Example #39
0
 public ObjectNode(
     Context context,
     string name,
     IValue @object,
     CachedMember member,
     INode parent) :
         base(name, @object, member, parent, context)
 {
     _members = new Lazy<IEnumerable<MemberDefinition>>(EnumerateMembers);
     _nodes = new Lazy<IEnumerable<INode>>(EnumerateNodes);
     _addedNodes = new Lazy<IList<INode>>(() => new List<INode>());
 }
Example #40
0
            public async Task MuteAsync(CachedMember member, TimeSpan timeout, [Remainder] string?reason = null)
            {
                if (member.Id == Context.User.Id)
                {
                    Context.Command.ResetCooldowns();
                    return;
                }

                var locale = Localization.GetGuildLocale(Context.Guild !.Id);

                var lowestTimeout = TimeSpan.FromMinutes(1);

                if (timeout < lowestTimeout)
                {
                    await ReplyErrorAsync(Localization.AdministrationMuteTimeoutLowest, lowestTimeout.Humanize(1, new CultureInfo(locale)));

                    return;
                }

                var now            = DateTime.UtcNow;
                var highestTimeout = now.AddYears(1) - now;

                if (timeout > highestTimeout)
                {
                    await ReplyErrorAsync(Localization.AdministrationMuteTimeoutHighest, highestTimeout.Humanize(1, new CultureInfo(locale), TimeUnit.Year));

                    return;
                }

                if (member.Id == Context.Guild !.OwnerId)
                {
                    await ReplyErrorAsync(Localization.AdministrationCannotMuteOwner);

                    return;
                }

                if (Context.CurrentMember !.CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAboveMe);

                    return;
                }

                if (((CachedMember)Context.User).CheckHierarchy(member) <= 0)
                {
                    await ReplyErrorAsync(Localization.AdministrationUserAbove);

                    return;
                }

                await Service.MuteUserAsync(Context.Channel, (CachedMember)Context.User, member, reason, timeout);
            }
Example #41
0
 public static ObjectNodeBase CreateSerializable(string name, IValue @object, INode parent,
     Context context, CachedMember member = null)
 {
     switch (GetTypeKind(@object.SpecifiedType, context.Options))
     {
         case TypeKind.Simple:
             if (parent == null) throw new TypeNotSupportedException("simple type", @object.SpecifiedType, Mode.Serialize, "complex types");
             return new ValueNode(context, name, @object, member, parent);
         case TypeKind.Dictionary: return new DictionaryNode(context, name, @object, member, parent);
         case TypeKind.Enumerable: return new EnumerableNode(context, name, @object, member, parent);
         default: return new ObjectNode(context, name, @object, member, parent);
     }
 }
Example #42
0
 public DictionaryNode(
     Context context, 
     string name, 
     IValue dictionary, 
     CachedMember member,
     INode parent)
     : base(name, dictionary, member, parent, context)
 {
     _dictionary = new Lazy<IDictionary>(() =>
         dictionary.Instance.MapOrDefault(GenericDictionaryAdapter.Create));
     if (SpecifiedType.IsGenericDictionary) _itemType = SpecifiedType.GenericDictionaryTypes.Value;
     _nodes = new Lazy<IEnumerable<INode>>(EnumerateNodes);
 }
 public void should_add_field_name_convention(
     CachedMember member, bool hasMember, string itemName)
 {
     GetName(member, x => x.Add(
     (n, c) => {
         n.ShouldEqual(itemName);
         c.HasMember.ShouldEqual(hasMember);
         c.Member.ShouldEqual(member);
         c.Type.ShouldEqual(ModelType);
         c.Options.ShouldEqual(Options);
         return "yada";
     })).ShouldEqual("yada");
 }
Example #44
0
 public EnumerableNode(
     Context context, 
     string name, 
     IValue enumerable, 
     CachedMember member,
     INode parent)
     : base(name, enumerable, member, parent, context)
 {
     _list = new Lazy<IList>(() => 
         enumerable.Instance.MapOrDefault(x => enumerable.ActualType.IsArray ? 
             ArrayAdapter.Create(enumerable) : GenericListAdapter.Create(x)));
     if (SpecifiedType.IsGenericEnumerable) _itemType = enumerable.SpecifiedType.GenericEnumerableType;
     _nodes = new Lazy<IEnumerable<INode>>(EnumerateNodes);
 }
Example #45
0
 protected ObjectNodeBase(
     string name, 
     IValue source,
     CachedMember member,
     INode parent,  
     Context context) : base(parent)
 {
     _name = name;
     Source = source;
     Context = context;
     Member = member;
     HasMember = member != null;
     if (HasMember) Metadata.Add(member.Attributes);
     else if (Source?.ActualType != null) Metadata.Add(ActualType.Attributes);
 }
        public void should_add_conditional_generic_field_convention(
            CachedMember member, bool hasMember, string itemName)
        {
            GetName(member, x => x.Add(
            (n, c) => {
                n.ShouldEqual(itemName);
                c.Options.ShouldEqual(Options);
                return "yada";
            },
            (n, c) => {
                n.ShouldEqual(itemName);
                c.Options.ShouldEqual(Options);
                return true;
            })).ShouldEqual("yada");

            GetName(member, x => x.Add((string n) => "yada",
                n => false)).ShouldEqual(itemName);
        }
        public void should_add_conditional_field_name_modification_convention(
            CachedMember member, bool hasMember, string itemName)
        {
            GetName(member, x => x.Add(
            (n, c) => {
                n.ShouldEqual(itemName);
                c.HasMember.ShouldEqual(hasMember);
                c.Member.ShouldEqual(member);
                c.Type.ShouldEqual(ModelType);
                c.Options.ShouldEqual(Options);
                return "yada";
            },
            (n, c) => {
                n.ShouldEqual(itemName);
                c.HasMember.ShouldEqual(hasMember);
                c.Member.ShouldEqual(member);
                c.Type.ShouldEqual(ModelType);
                c.Options.ShouldEqual(Options);
                return true;
            })).ShouldEqual("yada");

            GetName(member, x => x.Add((n, p) => "yada",
                (n, p) => false)).ShouldEqual(itemName);
        }
Example #48
0
 public void should_get_value(CachedMember cachedMember, MemberInfo memberInfo, Type type)
 {
     var @object = new Members();
     @object.SetPropertyOrFieldValue(memberInfo.Name, "hai");
     cachedMember.GetValue(@object).ShouldEqual("hai");
 }
Example #49
0
 public void should_indicate_if_member_has_attributes(
     CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.HasAttribute<XmlIgnoreAttribute>().ShouldBeTrue();
     cachedMember.HasAttribute<XmlArrayAttribute>().ShouldBeTrue();
 }
Example #50
0
 public void should_return_type(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.Type.Type.ShouldEqual(typeof(string));
 }
Example #51
0
 public void should_set_value(CachedMember cachedMember, MemberInfo memberInfo)
 {
     var @object = new Members();
     cachedMember.SetValue(@object, "hai");
     var value = @object.GetPropertyOrFieldValue(memberInfo.Name);
     (memberInfo.GetPropertyOrFieldType() == typeof(string) ? "hai" :
         (string)(Optional<string>)value).ShouldEqual("hai");
 }
Example #52
0
 public void should_return_name(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.Name.ShouldEqual(memberInfo.Name);
 }
Example #53
0
 public void should_return_null_when_attribute_not_applied_attribute(
     CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.GetAttribute<XmlArrayItemAttribute>().ShouldBeNull();
 }
Example #54
0
 public void should_return_declaring_type(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.DeclaringType.Type.ShouldEqual(memberInfo.DeclaringType);
 }
Example #55
0
 public void should_return_attributes(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.Attributes.ShouldContain(x => x is XmlIgnoreAttribute);
     cachedMember.Attributes.ShouldContain(x => x is XmlArrayAttribute);
 }
Example #56
0
 public void should_return_attribute(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.GetAttribute<XmlIgnoreAttribute>().ShouldNotBeNull();
     cachedMember.GetAttribute<XmlArrayAttribute>().ShouldNotBeNull();
 }
Example #57
0
 public void should_indicate_if_a_member_is_not_readonly(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.IsReadonly.ShouldBeFalse();
 }
Example #58
0
 public void should_indicate_if_member_does_not_have_an_attributes(
     CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.HasAttribute<XmlArrayItemAttribute>().ShouldBeFalse();
 }
Example #59
0
 public void should_indicate_if_is_a_property(CachedMember cachedMember, MemberInfo memberInfo)
 {
     var isProperty = memberInfo.MemberType == MemberTypes.Property;
     cachedMember.IsProperty.ShouldEqual(isProperty);
     cachedMember.IsField.ShouldEqual(!isProperty);
 }
Example #60
0
 public void should_indicate_if_property_or_field(CachedMember cachedMember, MemberInfo memberInfo)
 {
     cachedMember.IsPublicPropertyOrField.ShouldBeTrue();
 }