public void MemberInfoComparer_EqualsExtension_Subclass()
        {
            var eq = new MyMemberComparer();

            var m = new MyMemberInfo();

            Assert.IsTrue(eq.Equals(m, m));
            Assert.AreEqual(42, eq.GetHashCode(m));
        }
        public void MemberInfoComparer_Default_ThrowsNotSupported()
        {
            var eq = new MemberInfoEqualityComparer();

            var member1 = new MyMemberInfo();
            var member2 = new MyMemberInfo();

            Assert.ThrowsException <NotSupportedException>(() => eq.Equals(member1, member2));
            Assert.ThrowsException <NotSupportedException>(() => eq.GetHashCode(member1));
            Assert.ThrowsException <NotSupportedException>(() => eq.ResolveMember(typeof(object), member1));
        }
Esempio n. 3
0
    public override void OnInspectorGUI()
    {
        Replicator targ = (Replicator)target;

        if (GUILayout.Button("Get Members"))
        {
            targ.ReflectMembers();
            foldouts = new bool[targ.classNames.Count];
        }

        // loop through all components
        for (int i = 0; i < targ.classNames.Count; ++i)
        {
            foldouts[i] = EditorGUILayout.Foldout(foldouts[i], targ.classNames[i]);

            // if the foldout is active
            if (foldouts[i])
            {
                // loop through all of the members
                for (int j = 0; j < targ.members.Count; ++j)
                {
                    MyMemberInfo tmp = targ.members[j];

                    // check if that member matched the current foldout
                    if (targ.members[j].owner == targ.classNames[i])
                    {
                        // set send bool
                        tmp.send = EditorGUILayout.Toggle(tmp.name, tmp.send);

                        // set dead reckon bool if the type is dead reckonable
                        if (CheckDeadReckonType(tmp.type))
                        {
                            tmp.deadReckon = EditorGUILayout.Toggle("dead reckon?", tmp.deadReckon);
                        }

                        // add a space for neatness
                        EditorGUILayout.Space();
                    }

                    // editing structs this way only creates a copy so we have to set the changes back into the original
                    targ.members[j] = tmp;
                }
            }
        }

        Repaint();
    }
Esempio n. 4
0
 public void MemberInfoExtensions_NonSupported()
 {
     Assert.ThrowsException <NotSupportedException>(() => _ = new MyMemberInfo().ToCSharpString());
 }