public IEnumerator RightClickInGUIShouldDrawWithoutErrors() { var obj = CreateInstance <ShowSerializeReferenceDrawerTest>(); var so = new SerializedObject(obj); var sp = so.FindProperty(nameof(Field)); var testWindow = EditorWindow.GetWindow <TestEditorWindow>(); var position = new Rect(0, 0, 50, 50f); var currentEvent = new GuiEvent(EventType.MouseDown, position.center, 1, ShowSerializeReferenceDrawer.RightClickButton); testWindow.onGui = new EditorEvent(() => ShowSerializeReferenceDrawer.OnGUI(position, sp, GUIContent.none, currentEvent, GetType().GetField(nameof(Field)))); yield return(new WaitUntil(testWindow.OnGUIInitialized).OrTimeout(2000)); testWindow.Close(); }
public void GetSelectableTypesShouldReturnTypesFilteredByTypeFilter( Func <IEnumerable <Type>, IEnumerable <Type> > filter) { var obj = CreateInstance <ShowSerializeReferenceDrawerTest>(); obj.typeFilter = filter; var so = new SerializedObject(obj); var property = so.FindProperty(nameof(FilteredField)); var fieldInfo = GetType().GetField(nameof(FilteredField)); var expectedTypes = filter(property.GetSelectableManagedReferenceValueTypes()) ?? new Type[0]; var actualTypes = ShowSerializeReferenceDrawer.GetSelectableTypes(property, fieldInfo); var expected = new HashSet <Type>(expectedTypes); var actual = new HashSet <Type>(actualTypes); Assert.AreEqual(expected, actual); }