/*============================================================================*\ FILE : TestImm.c PURPOSE : ProImm functionality test HISTORY.. DATE BUILD AUTHOR MODIFICATIONS 04-May-99 I-03-09 Alexey $$1 First version 21-July-99 I-03-11 Alexey $$2 Let TEST_CALL_REPORT accept -4 as correct return value of ProImmFromModelGet \*============================================================================*/ /*----------------------------------------------------------------------------*\ Pro/TOOLKIT includes \*----------------------------------------------------------------------------*/ #include #include #include #include #include #include /*----------------------------------------------------------------------------*\ C System includes \*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*\ Application includes \*----------------------------------------------------------------------------*/ #include "UtilMessage.h" #include "UtilMenu.h" /*----------------------------------------------------------------------------*\ Application macros \*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*\ Application prototypes \*----------------------------------------------------------------------------*/ int ProTestImmInfo(ProMdl ); int ProTestImmCreate(ProMdl ); int ProTestImmRedefine(ProMdl ); /*----------------------------------------------------------------------------*\ Application global/external data \*----------------------------------------------------------------------------*/ /*============================================================================*\ FUNCTION : ProTestImm PURPOSE : Setup menu for testing \*============================================================================*/ ProError ProTestImm(ProMdl mdl) { ProError err; int menu_id, action; ProImmParams imm_par = NULL; err = ProMenuFileRegister("TkImm","tkimm.mnu", &menu_id); err = ProMenubuttonActionSet("TkImm", "TkImm", (ProMenubuttonAction)ProMenuDelete, NULL, 0); err = ProMenubuttonActionSet("TkImm", "Add", (ProMenubuttonAction)ProTestImmCreate, mdl, 0); err = ProMenubuttonActionSet("TkImm", "Info", (ProMenubuttonAction)ProTestImmInfo, mdl, 0); err = ProMenubuttonActionSet("TkImm", "Replace", (ProMenubuttonAction)ProTestImmRedefine, mdl, 0); err = ProMenubuttonActionSet("TkImm", "Done", (ProMenubuttonAction)ProMenuDelete, NULL, 0); err = ProMenuCreate(PROMENUTYPE_MAIN, "TkImm", NULL); err = ProImmFromModelGet (mdl, &imm_par); TEST_CALL_REPORT("ProImmFromModelGet()", "ProTestImmCreate()", err, (err != PRO_TK_NO_ERROR && err != PRO_TK_E_NOT_FOUND)); if (err == PRO_TK_E_NOT_FOUND) { err = ProMenubuttonDeactivate ("TkImm", "Replace"); err = ProMenubuttonDeactivate ("TkImm", "Info"); } else err = ProMenubuttonDeactivate ("TkImm", "Add"); err = ProMenuProcess("", &action); return (0); } /*============================================================================*\ FUNCTION : ProTestImmCreate PURPOSE : Create new IMM. \*============================================================================*/ int ProTestImmCreate (ProMdl mdl) { ProError err; ProImmParams imm_par = NULL; ProName machine_name; err = ProImmParamsAlloc(&imm_par); TEST_CALL_REPORT("ProImmParamsAlloc()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); ProStringToWstring (machine_name, "Access_220_725"); err = ProImmParamsDefaultSet (machine_name, imm_par); TEST_CALL_REPORT("ProImmParamsDefaultSet()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); err = ProImmDialog (mdl, imm_par); TEST_CALL_REPORT("ProImmDialog()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); if (err == PRO_TK_NO_ERROR) { err = ProImmCreate (imm_par); TEST_CALL_REPORT("ProImmCreate()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); } err = ProImmParamsFree (&imm_par); TEST_CALL_REPORT("ProImmParamsFree()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); return (0); } /*============================================================================*\ FUNCTION : ProTestImmRedefine PURPOSE : Redefine existing IMM \*============================================================================*/ int ProTestImmRedefine (ProMdl mdl) { ProError err; ProImmParams imm_par = NULL; ProModelitem item_owner; err = ProImmFromModelGet (mdl, &imm_par); TEST_CALL_REPORT("ProImmFromModelGet()", "ProTestImmRedefine()", err, err != PRO_TK_NO_ERROR); if (err != PRO_TK_NO_ERROR) return (-1); err = ProImmDialog (mdl, imm_par); TEST_CALL_REPORT("ProImmDialog()", "ProTestImmRedefine()", err, err != PRO_TK_NO_ERROR); if (err == PRO_TK_NO_ERROR) { err = ProImmCreate (imm_par); TEST_CALL_REPORT("ProImmCreate()", "ProTestImmRedefine()", err, err != PRO_TK_NO_ERROR); } err = ProImmParamsFree (&imm_par); TEST_CALL_REPORT("ProImmParamsFree()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); return (0); } /*============================================================================*\ FUNCTION : ProTestImmInfo PURPOSE : Get IMM info \*============================================================================*/ int ProTestImmInfo (ProMdl mdl) { ProError err; ProImmParams imm_par = NULL; ProName machine_name, *p_param_values = NULL; ProCharName *p_param_names = NULL; ProCharLine line, value; char f_name[PRO_FILE_NAME_SIZE]; FILE *fp; int n_params, i; ProTestQcrName(&mdl, ".inf", f_name); fp = fopen (f_name, "w"); if (fp == NULL) return -1; err = ProImmFromModelGet (mdl, &imm_par); TEST_CALL_REPORT("ProImmFromModelGet()", "ProTestImmInfo()", err, err != PRO_TK_NO_ERROR); if (err != PRO_TK_NO_ERROR) return (-1); err = ProArrayAlloc (0, sizeof(ProCharName), 1, (ProArray*)&p_param_names); err = ProArrayAlloc (0, sizeof(ProName), 1, (ProArray*)&p_param_values); err = ProImmParamsGet (imm_par, machine_name, &p_param_names, &p_param_values ); TEST_CALL_REPORT("ProImmParamsGet()", "ProTestImmInfo()", err, err != PRO_TK_NO_ERROR); fprintf (fp, "\nMachine_name: %s\n", ProWstringToString(line, machine_name)); err = ProArraySizeGet ((ProArray)p_param_names, &n_params); for (i = 0; i < n_params; i++) { strcpy(line, p_param_names[i]); ProWstringToString(value, p_param_values[i]); fprintf(fp, " %-20s %s\n", line, value); } err = ProArrayFree ((ProArray*)&p_param_values); err = ProArrayFree ((ProArray*)&p_param_names); err = ProImmParamsFree (&imm_par); TEST_CALL_REPORT("ProImmParamsFree()", "ProTestImmCreate()", err, err != PRO_TK_NO_ERROR); fclose (fp); ProStringToWstring(machine_name, f_name); ProInfoWindowDisplay(machine_name, NULL, NULL); return (0); }