/// <summary> /// /// </summary> /// <param name="trigger_objects"> /// The objects corresponding to each set of breakpoint triggers /// </param> /// <param name="obj_triggers"> /// The set of breakpoint triggers for the object /// we are currently considering /// </param> /// <returns></returns> private void addBreakpointsToValidationDict (bool validate, ScreenSizeChangeLogic test_logic, DimensionToTest dimension, ObjectTriggers obj_triggers, Dictionary <string, Dictionary <float, bool> > validation_dict, Dictionary <ObjectTriggers, string> trigger_obj_names, Dictionary <ObjectTriggers, object> trigger_objects) { Assert.IsTrue(trigger_obj_names.ContainsKey(obj_triggers), MISSING_NAME_EXC + obj_triggers.ToString()); Assert.IsTrue(trigger_objects.ContainsKey(obj_triggers), printMissingTriggerObjectException(trigger_objects, obj_triggers)); object registrant = trigger_objects[obj_triggers]; registerBreakpointHandlers(test_logic, registrant, obj_triggers, dimension); string obj_name = trigger_obj_names[obj_triggers]; // This will already be set up when // setting up the do not include triggers if (!validation_dict.ContainsKey(obj_name)) { Dictionary <float, bool> obj_validation_dict = new Dictionary <float, bool>(); validation_dict.Add(obj_name, obj_validation_dict); } foreach (float obj_breakpoint in obj_triggers.Keys) { validation_dict[obj_name][obj_breakpoint] = validate; } }
private void registerBreakpointHandlers (ScreenSizeChangeLogic test_obj, object registrant, ObjectTriggers object_triggers, DimensionToTest dimension) { switch (dimension) { case DimensionToTest.HEIGHT: test_obj.registerHeightBreakpointHandlers(object_triggers, registrant); break; case DimensionToTest.WIDTH: test_obj.registerWidthBreakpointHandlers(object_triggers, registrant); break; } }
private void doDimensionBreakpointTest (ScreenSizeChangeLogic test_logic, SortedList <float, ObjectTriggers> breakpoints_to_validate, SortedList <float, ObjectTriggers> breakpoints_to_exclude, Dictionary <string, Dictionary <float, bool> > confirmation_dict, Dictionary <ObjectTriggers, string> trigger_obj_names, Dictionary <ObjectTriggers, object> trigger_objects, DimensionToTest dimension, float breakpoint_to_trigger) { var validation_dict = new Dictionary <string, Dictionary <float, bool> >(); foreach (var obj_breakpoints in breakpoints_to_validate) { addBreakpointsToValidationDict(true, test_logic, dimension, obj_breakpoints.Value, validation_dict, trigger_obj_names, trigger_objects); } Debug.Log("validation dict after triggers added: "); Debug.Log(printConfirmationDict(validation_dict)); foreach (var obj_breakpoints in breakpoints_to_exclude) { addBreakpointsToValidationDict(false, test_logic, dimension, obj_breakpoints.Value, validation_dict, trigger_obj_names, trigger_objects); } Debug.Log("validation dict after excludes added: "); Debug.Log(printConfirmationDict(validation_dict)); Rect test_rect; switch (dimension) { case DimensionToTest.HEIGHT: test_rect = new Rect(0, 0, float.MaxValue, breakpoint_to_trigger); test_logic.screenSizeChangeHandler(test_rect); break; case DimensionToTest.WIDTH: test_rect = new Rect(0, 0, breakpoint_to_trigger, float.MaxValue); test_logic.screenSizeChangeHandler(test_rect); break; default: throw new UnexpectedEnumValueException <DimensionToTest>(dimension); } Debug.Log("validation dict after test: "); Debug.Log(printConfirmationDict(validation_dict)); Debug.Log("confirmation dict after test: "); Debug.Log(printConfirmationDict(confirmation_dict)); // check that validation dictionary is the same as // the dictionary filled out during the tes. foreach (var obj_entry in validation_dict) { string obj_name = obj_entry.Key; Debug.Log("Checking values for object " + obj_name); Assert.IsTrue(confirmation_dict.ContainsKey(obj_name), confirmationDictInsufficientlyModified(obj_name)); foreach (var obj_breakpoint_confirmation in obj_entry.Value) { float breakpoint = obj_breakpoint_confirmation.Key; bool expected_trigger_state = validation_dict[obj_name][breakpoint]; if (!confirmation_dict[obj_name].ContainsKey(breakpoint)) { Assert.IsFalse( expected_trigger_state, confirmationDictInsufficientlyModified(obj_name, breakpoint) ); } else { bool actual_trigger_state = confirmation_dict[obj_name][breakpoint]; Assert.AreEqual( expected_trigger_state, actual_trigger_state, triggerStateDifferentErrorMessage(obj_name, breakpoint, actual_trigger_state, expected_trigger_state) ); } } Debug.Log("Values for object " + obj_name + " are correct"); } }