Example #1
0
        public void SerializationUtilityCanDeserializeCustomSerializable()
        {
            CustomSerializable deserializedInstance = SerializationUtility.DeserializeFromString("testcontents", typeof(CustomSerializable), ApplicationNode.Hierarchy) as CustomSerializable;

            Assert.IsNotNull(deserializedInstance);
            Assert.AreEqual("testcontents", deserializedInstance.Contents);
        }
        /// <summary>
        /// Draws the "Add entry" button and the context menu
        /// </summary>
        private void DrawAddEntryButton(Rect _Position, SerializedProperty _DataList)
        {
            if (GUI.Button(_Position, EditorIcons.IconContent(EEditorIcon.AddDropdown, "Add Entry", "Creates a new entry on this Blackboard"), MuffinDevGUI.PropertyFieldButtonStyle))
            {
                GenericMenu menu = new GenericMenu();
                menu.AddDisabledItem(new GUIContent("New Entry Type"));
                foreach (KeyValuePair <Type, IBlackboardValueEditor> valueEditor in VALUE_EDITORS)
                {
                    menu.AddItem(new GUIContent(ObjectNames.NicifyVariableName(valueEditor.Key.Name)), false, () =>
                    {
                        int index = _DataList.arraySize;
                        _DataList.InsertArrayElementAtIndex(index);

                        SerializedProperty prop = _DataList.GetArrayElementAtIndex(index);
                        prop.FindPropertyRelative(KEY_PROP).stringValue            = $"New{valueEditor.Key.Name}";
                        prop.FindPropertyRelative(DATA_TYPE_NAME_PROP).stringValue = valueEditor.Key.AssemblyQualifiedName;

                        object data = SerializationUtility.DeserializeFromString(valueEditor.Key, string.Empty);
                        prop.FindPropertyRelative(SERIALIZED_DATA_PROP).stringValue = SerializationUtility.SerializeToString(data);

                        prop.serializedObject.ApplyModifiedProperties();
                    });
                }
                menu.ShowAsContext();
            }
        }
Example #3
0
        public void SerializationUtilityDeserializesToNullOnFailure()
        {
            string relativePathToInstrumentationNode = "/non extisting path";

            InstrumentationNode deserializedInstance = SerializationUtility.DeserializeFromString(relativePathToInstrumentationNode, typeof(InstrumentationNode), ApplicationNode.Hierarchy) as InstrumentationNode;

            Assert.IsNull(deserializedInstance);
        }
Example #4
0
        public void SerializationUtilityCanDeserializeConfigurationNode()
        {
            InstrumentationNode instrumentationNode = new InstrumentationNode();

            ApplicationNode.AddNode(instrumentationNode);

            string relativePathToInstrumentationNode = SerializationUtility.CreatePathRelativeToRootNode(instrumentationNode.Path, ApplicationNode.Hierarchy);

            Assert.IsNotNull(relativePathToInstrumentationNode);

            InstrumentationNode deserializedInstance = SerializationUtility.DeserializeFromString(relativePathToInstrumentationNode, typeof(InstrumentationNode), ApplicationNode.Hierarchy) as InstrumentationNode;

            Assert.AreEqual(instrumentationNode, deserializedInstance);
        }
Example #5
0
 public void SerializationUtilityCanDeserializeConvertible()
 {
     Assert.AreEqual(123, (int)SerializationUtility.DeserializeFromString("123", typeof(int), ApplicationNode.Hierarchy));
 }
Example #6
0
 public void SerializationUtilityCanDeserializeNull()
 {
     Assert.IsNull(SerializationUtility.DeserializeFromString(null, typeof(string), ApplicationNode.Hierarchy));
 }
Example #7
0
 /// <summary>
 /// Gets the value of the given entry.
 /// </summary>
 /// <param name="_Item">The serialized property that represent an entry of a blackboard.</param>
 public T GetValue(SerializedProperty _Item)
 {
     return(SerializationUtility.DeserializeFromString <T>(GetSerializedDataProperty(_Item).stringValue));
 }