public void UT_SR_RawMsg() { // -- чтобы посмотреть, как выглядит MessageBox, но с Assert.Fault по Msg.FOK(), используй //var U = new UT_TSmatch._UT_Msg(true); var U = new UT_TSmatch._UT_MsgService(); // test 1: Msg("No model dir") -- RU Mod mod = new Mod(); mod.dir = @"C:\ABCDEF"; try { mod.sr.Raw(mod); } catch (Exception ex) { Assert.AreEqual("Msg.F", ex.Message); } Assert.AreEqual("[SavedReport.Raw]: не найден каталог модели, на который указывает\r\n запись в TSmatchINFO.xlsx или записано в регистре Windows\r\n\r\n\"C:\\ABCDEF\"\r\n\r\nЭто сообщение возникает, когда нет файла TSmatchINFO.xlsx,\r\nи нет Tekla, чтобы его можно было создать заново.\r\nПопробуйте запустить TSmatch на машине, где есть Tekla.", U.GetMsg()); // test 2: Msg("No model dir") -- EN // -- чтобы посмотреть, как выглядит MessageBox, но с Assert.Fault по Msg.FOK(), используй //U.SetLanguage("en", true); U.SetLanguage("en"); try { mod.sr.Raw(mod); } catch (Exception ex) { Assert.AreEqual("Msg.F", ex.Message); } Assert.AreEqual("[SavedReport.Raw]: not found model directory, pointed by\r\n TSmatchINFO.xlsx, or written in Windows Environment\r\n\r\n\"C:\\ABCDEF\" \r\n\r\nand there is no Tekla active to read and re-create it again. \r\nPlease, try to run TSmatch on PC with Tekla.", U.GetMsg()); // test 3: Msg("Raw_CAD_Read") -- EN // -- чтобы посмотреть, как выглядит MessageBox, но с Assert.Fault по Msg.FOK(), используй //U.SetLanguage("en", true); U.SetLanguage("en"); mod.dir = @"C:\Windows"; try { mod.sr.Raw(mod); } catch (Exception ex) { Assert.AreEqual("Msg.F", ex.Message); } Assert.AreEqual("[SavedReport.Raw]: File \"Raw.xml\" is corrupted or unavailable.\r\nWould you like to read it from CAD once again?", U.GetMsg()); // test 4: Msg("Raw_CAD_Read") -- RU // -- чтобы посмотреть, как выглядит MessageBox, но с Assert.Fault по Msg.FOK(), используй //U.SetLanguage("ru", true); U.SetLanguage("ru"); mod.dir = @"C:\Windows"; try { mod.sr.Raw(mod); } catch (Exception ex) { Assert.AreEqual("Msg.F", ex.Message); } Assert.AreEqual("[SavedReport.Raw]: Файл \"Raw.xml\" не доступен или испорчен.\r\nВы действительно хотите получить его из САПР заново?", U.GetMsg()); }
private string sub_Str(string sLang) { U.SetLanguage(sLang); string result = "", prefix = "Msg.W: "; try { comp.Str(SType.Description); } catch (Exception e) { if (e.Message.IndexOf(prefix) == 0) result = e.Message.Substring(prefix.Length); } return result; }
public void UT_W_I_F() { // test 0: in_UT, not known message var U = new UT_TSmatch._UT_MsgService(); U.SetLanguage("en"); U._W("text for test"); Assert.AreEqual("text_for_test", U.GetMsg()); // test 1: W(str, parameters) U._W("Bootstrap__resError_NoFile", 3.1415); Assert.AreEqual("[Bootstrap.resError]: Not found TSmatch file \"3,1415\"", U.GetMsg()); // test 2: I(str, parameters) U.SetLanguage("ru"); U._I("Bootstrap__resError_NoDoc", "какой-то.doc"); Assert.AreEqual("[Bootstrap.resError]: Нет ресурсного документа \"какой-то.doc\"", U.GetMsg()); // test 3: F(str, parameters) U._F("Bootstrap__resError_Obsolete", "город"); Assert.AreEqual("[Bootstrap.resError]: Ресурс \"город\" устарел. Пожалуйста обновите его!", U.GetMsg()); }
public void UT_init() { // тест 0: проверяем singleton initialisation var U = new UT_TSmatch._UT_MsgService(); U.SetLanguage("ru"); int cnt = U.cnt_msgs(); Assert.IsTrue(cnt > 10); // test 1: Msg.S ru not known string s = U.S("число {0} и {1}", 3.14, 2.7); Assert.AreEqual("число_3,14_и_2,7", uS(s)); // test 2: change culture to en, known U.SetLanguage("en"); s = U.S("S"); Assert.AreEqual("Loading", s); // test 3: return culture to ru U.SetLanguage("ru"); s = U.S("S"); Assert.AreEqual("Гружу", s); ////// // test 4: after bug 29.11.17: save sLanguage in Properties.Setting // не разобрался как читать Properties.Settings // хотя это хорошо описано в http://softwareonastring.com/399/property-settings-default-considered-detrimental-to-unit-testing // и в https://softwareengineering.stackexchange.com/questions/275475/when-and-how-to-apply-application-settings-in-net // ////// U.SetLanguage("en"); ////// string vv = Properties.Settings.Default.sLanguage; //////// string sLang = Properties. Settings.Default.sLanguage; ////// Assert.AreEqual("en-US", sLang); ////// U.SetLanguage("ru"); ////// sLang = CultureInfo.CurrentCulture.Name; ////// Assert.AreEqual("ru-RU", sLang); }
public string _CheckGroups(ref Model.Model model, string sLang = "", string sev = "F") { U.SetLanguage(sLang); string result = ""; string prefix = "Msg." + sev + ": [Group.CheckGroup]: "; try { CheckGroups(ref model); } catch (Exception e) { if (e.Message.IndexOf(prefix) == 0) { result = e.Message.Substring(prefix.Length); } } return(result); }
public void UT_AskOK() { // test 0: Dialog = false - работаем без остановки var U = new UT_TSmatch._UT_MsgService(); U.SetLanguage(""); try { U.AskOK("text for test"); } catch (ArgumentException e) when(e.Message == "Msg.I: text_for_test") { } // test 1: Dialog = false - работаем без остановки; AskFOK() string exCode = string.Empty; try { U.AskFOK("text for test 2"); } catch (ArgumentException e) { exCode = e.Message; } Assert.AreEqual("Msg.I: text_for_test_2", exCode); }
private string sub_PriceGr(Mod mod, ElmGr gr, string sLang = "en", string sev = "F", string _prefix = "") { U.SetLanguage(sLang); string result = "", prefix = _prefix; if (string.IsNullOrEmpty(prefix)) { prefix = "Msg." + sev + ": [Handler.PriceGr]: "; } try { mod.mh.PriceGr(mod, gr); } catch (Exception e) { if (e.Message.IndexOf(prefix) == 0) { result = e.Message.Substring(prefix.Length); } } return(result); }
public void UT_SR_Msg() { // test 1-en: English Msg.F("Directory doesn't exist") U.SetLanguage("en"); string s = sr._SetModDir(boot, 1); Assert.AreEqual("No \"TSmatchINFO.xlsx\" in model directory \r\nEnsure, that this file is written by TSmatch application, when Tekla is\r\n available, and then put to the Directory, which is known to TSmatch." , s); // test 1-ru: Russian Msg.F("Directory doesn't exist") U.SetLanguage("ru"); s = sr._SetModDir(boot, 1); Assert.AreEqual("В каталоге модели нет файла \"TSmatchINFO.xlsx\".\r\nУбедитесь, что он сохранен приложением TSmatch, когда модель\r\nдоступна в Tekla, а затем помещен в папку, известную TSmatch." , s); // test 2-en: English Msg.F("No TSmatchINFO.xlsx") U.SetLanguage("en"); s = sr._SetModDir(boot, 2); Assert.AreEqual("\"TSmatchINFO.xlsx\" not found\r\nin directory \"C:\\Windows\"" , s); // test 2-ru: Russian Msg.F("No TSmatchINFO.xlsx") U.SetLanguage("ru"); s = sr._SetModDir(boot, 2); Assert.AreEqual("Отчет по модели \"TSmatchINFO.xlsx\".\r\nне обнаружен в папке \"C:\\Windows\"" , s); // test 3-en: English U.SetLanguage("en"); s = sr._error(); Assert.AreEqual("Saved model report in \"TSmatchINFO.xlsx\" is corrupted.\r\nPlease, try to write it again in TSmatch application, when model in Tecla is available." , s); // test 3-ru: Russian U.SetLanguage("ru"); s = sr._error(); Assert.AreEqual("Испорчен файл TSmatchINFO.xlsx\r\nПопробуйте записать его заново при выходе из приложения TSmatch" , s); }