public void OkDialog() { string message; if (Source == SpectralLibrarySource.file) { string path = textFilePath.Text; message = ValidateSpectralLibraryPath(path); if (message != null) { MessageDlg.Show(this, message); textFilePath.Focus(); return; } } var librarySpec = Library; if (librarySpec == null) { MessageDlg.Show(this, Resources.ImportIonMobilityFromSpectralLibrary_OkDialog_Please_choose_the_library_you_would_like_to_add_); return; } var table = new ChargeRegressionTable(gridRegression); var chargeRegressionLinesList = table.GetTableChargeRegressionLines(); if (chargeRegressionLinesList == null) // Some error detected in the charged regression lines table return; ChargeRegressionsLines = chargeRegressionLinesList.ToDictionary(x => x.Charge, x => x.RegressionLine); // Have we got everything we need to populate the caller's grid view? message = _gridViewDriver.ImportFromSpectralLibrary(librarySpec, ChargeRegressionsLines); if (message == null) { DialogResult = DialogResult.OK; } else { MessageDlg.Show(this, message); } }
/// <summary> /// Test various error conditions in EditDriftTimePredictorDlg.cs /// </summary> public void TestEditDriftTimePredictorDlgErrorHandling() { AssertEx.Contains(EditDriftTimePredictorDlg.ValidateResolvingPower(0), Resources.EditDriftTimePredictorDlg_ValidateResolvingPower_Resolving_power_must_be_greater_than_0_); AssertEx.Contains(EditDriftTimePredictorDlg.ValidateResolvingPower(-1), Resources.EditDriftTimePredictorDlg_ValidateResolvingPower_Resolving_power_must_be_greater_than_0_); Assert.IsNull(EditDriftTimePredictorDlg.ValidateResolvingPower(1)); AssertEx.Contains(MeasuredDriftTimeTable.ValidateCharge(0), String.Format( Resources.EditDriftTimePredictorDlg_ValidateCharge_The_entry__0__is_not_a_valid_charge__Precursor_charges_must_be_integer_values_between_1_and__1__, 0, TransitionGroup.MAX_PRECURSOR_CHARGE)); AssertEx.Contains(MeasuredDriftTimeTable.ValidateCharge(99), String.Format( Resources.EditDriftTimePredictorDlg_ValidateCharge_The_entry__0__is_not_a_valid_charge__Precursor_charges_must_be_integer_values_between_1_and__1__, 99, TransitionGroup.MAX_PRECURSOR_CHARGE)); string[] dtValues = { null, null, null, null }; AssertEx.Contains(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(new[] { "", "" }), Resources.MeasuredDriftTimeTable_ValidateMeasuredDriftTimeCellValues_The_pasted_text_must_have_three_columns_); AssertEx.Contains(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues), Resources.MeasuredDriftTimeTable_ValidateMeasuredDriftTimeCellValues_A_modified_peptide_sequence_is_required_for_each_entry_); dtValues[0] = "$%$%!"; AssertEx.Contains(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues), String.Format(Resources.MeasuredDriftTimeTable_ValidateMeasuredDriftTimeCellValues_The_sequence__0__is_not_a_valid_modified_peptide_sequence_, dtValues[0])); dtValues[0] = "JKLM"; dtValues[1] = "dog"; dtValues[2] = "-0.2"; // HighEnergyDriftTimeOffsetMsec AssertEx.Contains(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues), String.Format(Resources.EditDriftTimePredictorDlg_ValidateCharge_The_entry__0__is_not_a_valid_charge__Precursor_charges_must_be_integer_values_between_1_and__1__, dtValues[EditDriftTimePredictorDlg.COLUMN_CHARGE].Trim(), TransitionGroup.MAX_PRECURSOR_CHARGE)); dtValues[2] = (17.9).ToString(CultureInfo.CurrentCulture); dtValues[1] = "2"; Assert.IsNull(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues), string.Format("unexpected error {0}", MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues))); dtValues[2] = "fish"; AssertEx.Contains(MeasuredDriftTimeTable.ValidateMeasuredDriftTimeCellValues(dtValues), String.Format(Resources.MeasuredDriftTimeTable_ValidateMeasuredDriftTimeCellValues_The_value__0__is_not_a_valid_drift_time_, dtValues[EditDriftTimePredictorDlg.COLUMN_DRIFT_TIME_MSEC].Trim())); AssertEx.Contains(ChargeRegressionTable.ValidateCharge(0), String.Format( Resources.EditDriftTimePredictorDlg_ValidateCharge_The_entry__0__is_not_a_valid_charge__Precursor_charges_must_be_integer_values_between_1_and__1__, 0, TransitionGroup.MAX_PRECURSOR_CHARGE)); AssertEx.Contains(ChargeRegressionTable.ValidateCharge(99), String.Format( Resources.EditDriftTimePredictorDlg_ValidateCharge_The_entry__0__is_not_a_valid_charge__Precursor_charges_must_be_integer_values_between_1_and__1__, 99, TransitionGroup.MAX_PRECURSOR_CHARGE)); Assert.IsNull(ChargeRegressionTable.ValidateCharge(1)); Assert.IsNull(ChargeRegressionTable.ValidateCharge(TransitionGroup.MAX_PRECURSOR_CHARGE)); string[] values = { "", "", "" }; AssertEx.Contains(ChargeRegressionTable.ValidateRegressionCellValues(values), string.Format( Resources.EditDriftTimePredictorDlg_ValidateRegressionCellValues_the_value__0__is_not_a_valid_charge__Charges_must_be_integer_values_between_1_and__1__, values[0], TransitionGroup.MAX_PRECURSOR_CHARGE)); values[0] = "1"; AssertEx.Contains(ChargeRegressionTable.ValidateRegressionCellValues(values), string.Format(Resources.EditDriftTimePredictorDlg_ValidateRegressionCellValues_the_value__0__is_not_a_valid_slope_, values[1])); values[1] = "1"; AssertEx.Contains(ChargeRegressionTable.ValidateRegressionCellValues(values), string.Format(Resources.EditDriftTimePredictorDlg_ValidateRegressionCellValues_the_value__0__is_not_a_valid_intercept_, values[2])); values[2] = "1"; Assert.IsNull(ChargeRegressionTable.ValidateRegressionCellValues(values)); object[] column = { "1" }; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(column, 1), Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_The_pasted_text_must_have_at_least_two_columns_); object[] columns = { "", "", "" }; const int lineNumber = 1; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_Missing_peptide_sequence_on_line__0__, lineNumber)); columns[0] = "@#%!"; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_The_text__0__is_not_a_valid_peptide_sequence_on_line__1__, columns[0], lineNumber)); columns[0] = "JKLM"; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_Missing_collisional_cross_section_value_on_line__0__, lineNumber)); columns[1] = "fish"; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_Invalid_number_format__0__for_collisional_cross_section_on_line__1__, columns[1], lineNumber)); columns[1] = "0"; AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_The_collisional_cross_section__0__must_be_greater_than_zero_on_line__1__, columns[1], lineNumber)); columns[1] = "1"; Assert.IsNull(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber)); columns[2] = "zeke"; // HighEnergyDriftTimeOffsetMsec AssertEx.Contains(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber), string.Format(Resources.CollisionalCrossSectionGridViewDriverBase_ValidateRow_Invalid_number_format__0__for_high_energy_drift_time_offset_on_line__1__, columns[2], lineNumber)); columns[2] = ""; // HighEnergyDriftTimeOffsetMsec Assert.IsNull(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber)); columns[2] = "1"; // HighEnergyDriftTimeOffsetMsec (usually negative, but we don't demand it) Assert.IsNull(CollisionalCrossSectionGridViewDriverBase <ValidatingIonMobilityPeptide> .ValidateRow(columns, lineNumber)); var pep = new ValidatingIonMobilityPeptide(null, 0, 0); AssertEx.Contains(pep.Validate(), Resources.ValidatingIonMobilityPeptide_ValidateSequence_A_modified_peptide_sequence_is_required_for_each_entry_); const string seq = "@#%!"; pep = new ValidatingIonMobilityPeptide(seq, 0, 0); AssertEx.Contains(pep.Validate(), string.Format( Resources.ValidatingIonMobilityPeptide_ValidateSequence_The_sequence__0__is_not_a_valid_modified_peptide_sequence_, seq)); pep = new ValidatingIonMobilityPeptide("JLKM", 0, 0); AssertEx.Contains(pep.Validate(), Resources.ValidatingIonMobilityPeptide_ValidateCollisionalCrossSection_Measured_collisional_cross_section_values_must_be_valid_decimal_numbers_greater_than_zero_); pep = new ValidatingIonMobilityPeptide("JLKM", 1, 0); Assert.IsNull(pep.Validate()); }