autotestfixture.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. class AutoTestFixture
  2. {
  3. private static const string REPORT_FILE_NAME_TEMPLATE = "$mission:Autotest_%1.xml";
  4. private static const string DATETIME_FORMAT = "%1%2%3T%4%5%6Z";
  5. private static string m_WorldName;
  6. static bool SaveXMLReport(string data, out string errorMessage)
  7. {
  8. int year, month, day, hour, minute, second;
  9. GetYearMonthDayUTC(year, month, day);
  10. GetHourMinuteSecondUTC(hour, minute, second);
  11. string datetimeUTC = string.Format(DATETIME_FORMAT, year, month.ToStringLen(2), day.ToStringLen(2), hour.ToStringLen(2), minute.ToStringLen(2), second.ToStringLen(2));
  12. string filename = string.Format(REPORT_FILE_NAME_TEMPLATE, datetimeUTC);
  13. FileHandle handle = OpenFile(filename, FileMode.WRITE);
  14. if (handle == 0)
  15. {
  16. errorMessage = string.Format("Cannot open file \"%1\" for writing", filename);
  17. return false;
  18. }
  19. FPrint(handle, data);
  20. CloseFile(handle);
  21. return true;
  22. }
  23. static EntityAI SpawnEntityAI(string typeName, int flags = ECE_PLACE_ON_SURFACE)
  24. {
  25. EntityAI entity = EntityAI.Cast(g_Game.CreateObjectEx(typeName, g_Game.GetPlayer().GetPosition(), ECE_PLACE_ON_SURFACE));
  26. return entity;
  27. }
  28. static void SetWorldName()
  29. {
  30. string worldName = "empty";
  31. GetGame().GetWorldName(worldName);
  32. worldName.ToLower();
  33. m_WorldName = worldName;
  34. }
  35. static string GetWorldName()
  36. {
  37. return m_WorldName;
  38. }
  39. static void LogRPT(string message)
  40. {
  41. PrintToRPT(string.Format("[Autotest] %1", message));
  42. }
  43. }