Serializer.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using System.Fire;
  4. using System.IO;
  5. using System.Fire.Serialize;
  6. using System.Fire.Serialize.Property;
  7. namespace Fire.UnitTest {
  8. [TestClass]
  9. public class Serializer {
  10. [TestMethod]
  11. public void Serializer_SaveInt_ReturnsTrue() {
  12. string FileName = "UnitTest_SaveInt.dat";
  13. System.Fire.Serialize.Serializer.SerializeObject(FileName, 123456);
  14. if (File.Exists(FileName) == false) {
  15. Assert.Fail(FileName+ " does not exist");
  16. return;
  17. } else {
  18. byte[] b = File.ReadAllBytes(FileName);
  19. if (b.Length != 4) {
  20. Assert.Fail(FileName+" has " + b.Length + " bytes");
  21. return;
  22. }
  23. File.Delete(FileName);
  24. }
  25. Assert.IsTrue(true);
  26. }
  27. [TestMethod]
  28. public void Serializer_LoadInt_ReturnsTrue() {
  29. string FileName = "UnitTest_LoadInt.dat";
  30. System.Fire.Serialize.Serializer.SerializeObject(FileName, 123456);
  31. if (File.Exists(FileName) == false) {
  32. Assert.Fail(FileName + " does not exist");
  33. return;
  34. } else {
  35. int res = (int)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(int));
  36. if(res != 123456) {
  37. Assert.Fail("Value in " + FileName + " is " + res);
  38. return;
  39. }
  40. File.Delete(FileName);
  41. }
  42. Assert.IsTrue(true);
  43. }
  44. [TestMethod]
  45. public void Serializer_SaveString_ReturnsTrue() {
  46. string FileName = "UnitTest_SaveString.dat";
  47. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hallo Welt!");
  48. if (File.Exists(FileName) == false) {
  49. Assert.Fail(FileName + " does not exist");
  50. return;
  51. } else {
  52. byte[] b = File.ReadAllBytes(FileName);
  53. if (b.Length != 13) {
  54. Assert.Fail(FileName + " has " + b.Length + " bytes");
  55. return;
  56. }
  57. File.Delete(FileName);
  58. }
  59. Assert.IsTrue(true);
  60. }
  61. [TestMethod]
  62. public void Serializer_LoadString_ReturnsTrue() {
  63. string FileName = "UnitTest_LoadString.dat";
  64. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hallo Welt");
  65. if (File.Exists(FileName) == false) {
  66. Assert.Fail(FileName + " does not exist");
  67. return;
  68. } else {
  69. string res = (string)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string));
  70. if (res != "Hallo Welt") {
  71. Assert.Fail("Value in " + FileName + " is ("+res.Length+") " + res);
  72. return;
  73. }
  74. File.Delete(FileName);
  75. }
  76. Assert.IsTrue(true);
  77. }
  78. [TestMethod]
  79. public void Serializer_SaveStringUtf8_ReturnsTrue() {
  80. string FileName = "UnitTest_SaveString8.dat";
  81. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt!", ArraySize.bits_16, StringEncoding.UTF8);
  82. if (File.Exists(FileName) == false) {
  83. Assert.Fail(FileName + " does not exist");
  84. return;
  85. } else {
  86. byte[] b = File.ReadAllBytes(FileName);
  87. File.Delete(FileName);
  88. if (b.Length != 14) {
  89. Assert.Fail(FileName + " has " + b.Length + " bytes");
  90. return;
  91. }
  92. }
  93. Assert.IsTrue(true);
  94. }
  95. [TestMethod]
  96. public void Serializer_LoadStringUtf8_ReturnsTrue() {
  97. string FileName = "UnitTest_LoadString8.dat";
  98. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt", ArraySize.bits_16, StringEncoding.UTF8);
  99. if (File.Exists(FileName) == false) {
  100. Assert.Fail(FileName + " does not exist");
  101. return;
  102. } else {
  103. string res = (string)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string), ArraySize.bits_16, StringEncoding.UTF8);
  104. File.Delete(FileName);
  105. if (res != "Hällo Welt") {
  106. Assert.Fail("Value in " + FileName + " is '" + res + "'");
  107. return;
  108. }
  109. }
  110. Assert.IsTrue(true);
  111. }
  112. [TestMethod]
  113. public void Serializer_SaveStringUtf16_ReturnsTrue() {
  114. string FileName = "UnitTest_SaveString16.dat";
  115. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt!", ArraySize.bits_16, StringEncoding.Unicode);
  116. if (File.Exists(FileName) == false) {
  117. Assert.Fail(FileName + " does not exist");
  118. return;
  119. } else {
  120. byte[] b = File.ReadAllBytes(FileName);
  121. File.Delete(FileName);
  122. if (b.Length != 24) {
  123. Assert.Fail(FileName + " has " + b.Length + " bytes");
  124. return;
  125. }
  126. }
  127. Assert.IsTrue(true);
  128. }
  129. [TestMethod]
  130. public void Serializer_LoadStringUtf16_ReturnsTrue() {
  131. string FileName = "UnitTest_LoadString16.dat";
  132. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt", ArraySize.bits_16, StringEncoding.Unicode);
  133. if (File.Exists(FileName) == false) {
  134. Assert.Fail(FileName + " does not exist");
  135. return;
  136. } else {
  137. string res = (string)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string), ArraySize.bits_16, StringEncoding.Unicode);
  138. File.Delete(FileName);
  139. if (res != "Hällo Welt") {
  140. Assert.Fail("Value in " + FileName + " is '" + res + "'");
  141. return;
  142. }
  143. }
  144. Assert.IsTrue(true);
  145. }
  146. [TestMethod]
  147. public void Serializer_SaveStringUtf32_ReturnsTrue() {
  148. string FileName = "UnitTest_SaveString32.dat";
  149. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt!", ArraySize.bits_16, StringEncoding.UTF32);
  150. if (File.Exists(FileName) == false) {
  151. Assert.Fail(FileName + " does not exist");
  152. return;
  153. } else {
  154. byte[] b = File.ReadAllBytes(FileName);
  155. File.Delete(FileName);
  156. if (b.Length != 46) {
  157. Assert.Fail(FileName + " has " + b.Length + " bytes");
  158. return;
  159. }
  160. }
  161. Assert.IsTrue(true);
  162. }
  163. [TestMethod]
  164. public void Serializer_LoadStringUtf32_ReturnsTrue() {
  165. string FileName = "UnitTest_LoadString32.dat";
  166. System.Fire.Serialize.Serializer.SerializeObject(FileName, "Hällo Welt", ArraySize.bits_16, StringEncoding.UTF32);
  167. if (File.Exists(FileName) == false) {
  168. Assert.Fail(FileName + " does not exist");
  169. return;
  170. } else {
  171. string res = (string)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string), ArraySize.bits_16, StringEncoding.UTF32);
  172. File.Delete(FileName);
  173. if (res != "Hällo Welt") {
  174. Assert.Fail("Value in " + FileName + " is '" + res + "'");
  175. return;
  176. }
  177. }
  178. Assert.IsTrue(true);
  179. }
  180. [TestMethod]
  181. public void Serializer_SaveArray8_ReturnsTrue() {
  182. string FileName = "UnitTest_SaveArray8.dat";
  183. string[] testArray = new string[] { "Hallo", "Welt", "!", "" };
  184. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_8, StringEncoding.UTF8);
  185. if (File.Exists(FileName) == false) {
  186. Assert.Fail(FileName + " does not exist");
  187. return;
  188. } else {
  189. byte[] b = File.ReadAllBytes(FileName);
  190. File.Delete(FileName);
  191. if (b.Length != 19) {
  192. Assert.Fail(FileName + " has " + b.Length + " bytes");
  193. return;
  194. }
  195. }
  196. Assert.IsTrue(true);
  197. }
  198. [TestMethod]
  199. public void Serializer_SaveIntArray8_ReturnsTrue() {
  200. string FileName = "UnitTest_SaveIntArray8.dat";
  201. int[] testArray = new int[] { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
  202. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_8, StringEncoding.UTF8);
  203. if (File.Exists(FileName) == false) {
  204. Assert.Fail(FileName + " does not exist");
  205. return;
  206. } else {
  207. byte[] b = File.ReadAllBytes(FileName);
  208. File.Delete(FileName);
  209. if (b.Length != 81) {
  210. Assert.Fail(FileName + " has " + b.Length + " bytes");
  211. return;
  212. }
  213. }
  214. Assert.IsTrue(true);
  215. }
  216. [TestMethod]
  217. public void Serializer_LoadArray8_ReturnsTrue() {
  218. string FileName = "UnitTest_LoadArray8.dat";
  219. string[] testArray = new string[] { "Hallo", "Welt", "!", "" };
  220. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_8, StringEncoding.UTF8);
  221. if (File.Exists(FileName) == false) {
  222. Assert.Fail(FileName + " does not exist");
  223. return;
  224. } else {
  225. string[] res = (string[])System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string[]), ArraySize.bits_8, StringEncoding.UTF8);
  226. //File.Delete(FileName);
  227. if (res.Length != testArray.Length) {
  228. Assert.Fail(FileName + " doesn't have 4 Items");
  229. return;
  230. }
  231. for (int i = 0, c = testArray.Length; i < c; i++) {
  232. if (res[i] != testArray[i]) {
  233. Assert.Fail(FileName + " doesn't have the correct value. '" + testArray[i] + "' != '" + res[i] + "'");
  234. return;
  235. }
  236. }
  237. }
  238. Assert.IsTrue(true);
  239. }
  240. [TestMethod]
  241. public void Serializer_LoadArrayNullTerminated_ReturnsTrue() {
  242. string FileName = "UnitTest_LoadArrayNullTerminated.dat";
  243. string[] testArray = new string[] { "Hallo", "Welt", "!", "" };
  244. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.NullTerminated, StringEncoding.UTF8);
  245. if (File.Exists(FileName) == false) {
  246. Assert.Fail(FileName + " does not exist");
  247. return;
  248. } else {
  249. string[] res = (string[])System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(string[]), ArraySize.bits_8, StringEncoding.UTF8);
  250. //File.Delete(FileName);
  251. if (res.Length != testArray.Length) {
  252. Assert.Fail(FileName + " doesn't have 4 Items");
  253. return;
  254. }
  255. for (int i = 0, c = testArray.Length; i < c; i++) {
  256. if (res[i] != testArray[i]) {
  257. Assert.Fail(FileName + " doesn't have the correct value. '" + testArray[i] + "' != '" + res[i] + "'");
  258. return;
  259. }
  260. }
  261. }
  262. Assert.IsTrue(true);
  263. }
  264. [TestMethod]
  265. public void Serializer_LoadIntArray8_ReturnsTrue() {
  266. string FileName = "UnitTest_LoadIntArray8.dat";
  267. int[] testArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
  268. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_8, StringEncoding.UTF8);
  269. if (File.Exists(FileName) == false) {
  270. Assert.Fail(FileName + " does not exist");
  271. return;
  272. } else {
  273. int[] res = (int[])System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(int[]), ArraySize.bits_8, StringEncoding.UTF8);
  274. File.Delete(FileName);
  275. if (res.Length != testArray.Length) {
  276. Assert.Fail(FileName + " doesn't have " + testArray.Length + " Items");
  277. return;
  278. }
  279. for (int i = 0, c = testArray.Length; i < c; i++) {
  280. if (res[i] != testArray[i]) {
  281. Assert.Fail(FileName + " doesn't have the correct value. '" + testArray[i] + "' != '" + res[i] + "'");
  282. return;
  283. }
  284. }
  285. }
  286. Assert.IsTrue(true);
  287. }
  288. [TestMethod]
  289. public void Serializer_SaveArray16_ReturnsTrue() {
  290. string FileName = "UnitTest_SaveArray16.dat";
  291. string[] testArray = new string[] { "Hallo", "Welt", "!", "" };
  292. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_16, StringEncoding.UTF8);
  293. if (File.Exists(FileName) == false) {
  294. Assert.Fail(FileName + " does not exist");
  295. return;
  296. } else {
  297. byte[] b = File.ReadAllBytes(FileName);
  298. File.Delete(FileName);
  299. if (b.Length != 20) {
  300. Assert.Fail(FileName + " has " + b.Length + " bytes");
  301. return;
  302. }
  303. }
  304. Assert.IsTrue(true);
  305. }
  306. [TestMethod]
  307. public void Serializer_SaveArray32_ReturnsTrue() {
  308. string FileName = "UnitTest_SaveArray32.dat";
  309. string[] testArray = new string[] { "Hallo", "Welt", "!", "" };
  310. System.Fire.Serialize.Serializer.SerializeObject(FileName, testArray, ArraySize.bits_32, StringEncoding.UTF8);
  311. if (File.Exists(FileName) == false) {
  312. Assert.Fail(FileName + " does not exist");
  313. return;
  314. } else {
  315. byte[] b = File.ReadAllBytes(FileName);
  316. File.Delete(FileName);
  317. if (b.Length != 22) {
  318. Assert.Fail(FileName + " has " + b.Length + " bytes");
  319. return;
  320. }
  321. }
  322. Assert.IsTrue(true);
  323. }
  324. [TestMethod]
  325. public void Serializer_SaveObject_ReturnsTrue() {
  326. string FileName = "UnitTest_SaveObject.dat";
  327. SerializeTestObject obj = new SerializeTestObject();
  328. obj.Fill();
  329. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.bits_32, StringEncoding.UTF8);
  330. if (File.Exists(FileName) == false) {
  331. Assert.Fail(FileName + " does not exist");
  332. return;
  333. } else {
  334. byte[] b = File.ReadAllBytes(FileName);
  335. File.Delete(FileName);
  336. if (b.Length != 74) {
  337. Assert.Fail(FileName + " has " + b.Length + " bytes");
  338. return;
  339. }
  340. }
  341. Assert.IsTrue(true);
  342. }
  343. [TestMethod]
  344. public void Serializer_LoadObject_ReturnsTrue() {
  345. string FileName = "UnitTest_LoadObject.dat";
  346. SerializeTestObject obj = new SerializeTestObject();
  347. obj.Fill();
  348. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.bits_16, StringEncoding.UTF8);
  349. if (File.Exists(FileName) == false) {
  350. Assert.Fail(FileName + " does not exist");
  351. return;
  352. } else {
  353. SerializeTestObject b = (SerializeTestObject)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(SerializeTestObject), ArraySize.bits_16, StringEncoding.UTF8);
  354. File.Delete(FileName);
  355. if (b == null) {
  356. Assert.Fail(FileName + " loaded object is null");
  357. return;
  358. }
  359. if (!obj.Compare(b)) {
  360. Assert.Fail(FileName + " doesn't have the correct values.\n" +
  361. (b.boolean?"True":"False") + " - " + (obj.boolean ? "True" : "False") + "\n" +
  362. b.bNumber + " - " + obj.bNumber + "\n" +
  363. b.sNumber + " - " + obj.sNumber + "\n" +
  364. b.iNumber + " - " + obj.iNumber + "\n" +
  365. b.lNumber + " - " + obj.lNumber + "\n" +
  366. b.sbNumber + " - " + obj.sbNumber + "\n" +
  367. b.usNumber + " - " + obj.usNumber + "\n" +
  368. b.uiNumber + " - " + obj.uiNumber + "\n" +
  369. b.ulNumber + " - " + obj.ulNumber + "\n" +
  370. b.fNumber + " - " + obj.fNumber + "\n" +
  371. b.dNumber + " - " + obj.dNumber + "\n" +
  372. b.testString + "\n" +
  373. b.cChar + " - " + obj.cChar + "\n" +
  374. b.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  375. "");
  376. return;
  377. }
  378. }
  379. Assert.IsTrue(true);
  380. }
  381. [TestMethod]
  382. public void Serializer_SaveDeepObject_ReturnsTrue() {
  383. string FileName = "UnitTest_SaveDeepObject.dat";
  384. SerializeDeepTestObject obj = new SerializeDeepTestObject();
  385. obj.Fill();
  386. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.bits_32, StringEncoding.UTF8);
  387. if (File.Exists(FileName) == false) {
  388. Assert.Fail(FileName + " does not exist");
  389. return;
  390. } else {
  391. byte[] b = File.ReadAllBytes(FileName);
  392. File.Delete(FileName);
  393. if (b.Length != 214) {
  394. Assert.Fail(FileName + " has " + b.Length + " bytes");
  395. return;
  396. }
  397. }
  398. Assert.IsTrue(true);
  399. }
  400. [TestMethod]
  401. public void Serializer_LoadDeepObject_ReturnsTrue() {
  402. string FileName = "UnitTest_LoadDeepObject.dat";
  403. SerializeDeepTestObject obj = new SerializeDeepTestObject();
  404. obj.Fill();
  405. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.bits_32, StringEncoding.Unicode);
  406. if (File.Exists(FileName) == false) {
  407. Assert.Fail(FileName + " does not exist");
  408. return;
  409. } else {
  410. SerializeDeepTestObject b = (SerializeDeepTestObject)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(SerializeDeepTestObject), ArraySize.bits_32, StringEncoding.Unicode);
  411. if (b == null) {
  412. Assert.Fail(FileName + " loaded object is null");
  413. return;
  414. }
  415. if (!b.Compare(obj)) {
  416. Assert.Fail(FileName + " doesn't have the correct values.\n" +
  417. b.TestString + " - " + obj.TestString + "\n" +
  418. "------------------------------\n" +
  419. (b.Obj1.boolean ? "True" : "False") + " - " + (obj.Obj1.boolean ? "True" : "False") + "\n" +
  420. b.Obj1.bNumber + " - " + obj.Obj1.bNumber + "\n" +
  421. b.Obj1.sNumber + " - " + obj.Obj1.sNumber + "\n" +
  422. b.Obj1.iNumber + " - " + obj.Obj1.iNumber + "\n" +
  423. b.Obj1.lNumber + " - " + obj.Obj1.lNumber + "\n" +
  424. b.Obj1.sbNumber + " - " + obj.Obj1.sbNumber + "\n" +
  425. b.Obj1.usNumber + " - " + obj.Obj1.usNumber + "\n" +
  426. b.Obj1.uiNumber + " - " + obj.Obj1.uiNumber + "\n" +
  427. b.Obj1.ulNumber + " - " + obj.Obj1.ulNumber + "\n" +
  428. b.Obj1.fNumber + " - " + obj.Obj1.fNumber + "\n" +
  429. b.Obj1.dNumber + " - " + obj.Obj1.dNumber + "\n" +
  430. b.Obj1.testString + "\n" +
  431. b.Obj1.cChar + " - " + obj.Obj1.cChar + "\n" +
  432. b.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  433. "------------------------------\n" +
  434. (b.Obj2.boolean ? "True" : "False") + " - " + (obj.Obj2.boolean ? "True" : "False") + "\n" +
  435. b.Obj2.bNumber + " - " + obj.Obj2.bNumber + "\n" +
  436. b.Obj2.sNumber + " - " + obj.Obj2.sNumber + "\n" +
  437. b.Obj2.iNumber + " - " + obj.Obj2.iNumber + "\n" +
  438. b.Obj2.lNumber + " - " + obj.Obj2.lNumber + "\n" +
  439. b.Obj2.sbNumber + " - " + obj.Obj2.sbNumber + "\n" +
  440. b.Obj2.usNumber + " - " + obj.Obj2.usNumber + "\n" +
  441. b.Obj2.uiNumber + " - " + obj.Obj2.uiNumber + "\n" +
  442. b.Obj2.ulNumber + " - " + obj.Obj2.ulNumber + "\n" +
  443. b.Obj2.fNumber + " - " + obj.Obj2.fNumber + "\n" +
  444. b.Obj2.dNumber + " - " + obj.Obj2.dNumber + "\n" +
  445. b.Obj2.testString + "\n" +
  446. b.Obj2.cChar + " - " + obj.Obj2.cChar + "\n" +
  447. b.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  448. "");
  449. return;
  450. }
  451. File.Delete(FileName);
  452. }
  453. Assert.IsTrue(true);
  454. }
  455. [TestMethod]
  456. public void Serializer_LoadDeepObjectNullTerminatedUTF8_ReturnsTrue() {
  457. string FileName = "UnitTest_LoadDeepObjectNullTerminatedUTF8.dat";
  458. SerializeDeepTestObject obj = new SerializeDeepTestObject();
  459. obj.Fill();
  460. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.NullTerminated, StringEncoding.UTF8);
  461. if (File.Exists(FileName) == false) {
  462. Assert.Fail(FileName + " does not exist");
  463. return;
  464. } else {
  465. SerializeDeepTestObject b = (SerializeDeepTestObject)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(SerializeDeepTestObject), ArraySize.NullTerminated, StringEncoding.UTF8);
  466. //File.Delete(FileName);
  467. if (b == null) {
  468. Assert.Fail(FileName + " loaded object is null");
  469. return;
  470. }
  471. if (!b.Compare(obj)) {
  472. Assert.Fail(FileName + " doesn't have the correct values.\n" +
  473. b.TestString + " - " + obj.TestString + "\n" +
  474. "------------------------------\n" +
  475. (b.Obj1.boolean ? "True" : "False") + " - " + (obj.Obj1.boolean ? "True" : "False") + "\n" +
  476. b.Obj1.bNumber + " - " + obj.Obj1.bNumber + "\n" +
  477. b.Obj1.sNumber + " - " + obj.Obj1.sNumber + "\n" +
  478. b.Obj1.iNumber + " - " + obj.Obj1.iNumber + "\n" +
  479. b.Obj1.lNumber + " - " + obj.Obj1.lNumber + "\n" +
  480. b.Obj1.sbNumber + " - " + obj.Obj1.sbNumber + "\n" +
  481. b.Obj1.usNumber + " - " + obj.Obj1.usNumber + "\n" +
  482. b.Obj1.uiNumber + " - " + obj.Obj1.uiNumber + "\n" +
  483. b.Obj1.ulNumber + " - " + obj.Obj1.ulNumber + "\n" +
  484. b.Obj1.fNumber + " - " + obj.Obj1.fNumber + "\n" +
  485. b.Obj1.dNumber + " - " + obj.Obj1.dNumber + "\n" +
  486. b.Obj1.testString + "\n" +
  487. b.Obj1.cChar + " - " + obj.Obj1.cChar + "\n" +
  488. b.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  489. "------------------------------\n" +
  490. (b.Obj2.boolean ? "True" : "False") + " - " + (obj.Obj2.boolean ? "True" : "False") + "\n" +
  491. b.Obj2.bNumber + " - " + obj.Obj2.bNumber + "\n" +
  492. b.Obj2.sNumber + " - " + obj.Obj2.sNumber + "\n" +
  493. b.Obj2.iNumber + " - " + obj.Obj2.iNumber + "\n" +
  494. b.Obj2.lNumber + " - " + obj.Obj2.lNumber + "\n" +
  495. b.Obj2.sbNumber + " - " + obj.Obj2.sbNumber + "\n" +
  496. b.Obj2.usNumber + " - " + obj.Obj2.usNumber + "\n" +
  497. b.Obj2.uiNumber + " - " + obj.Obj2.uiNumber + "\n" +
  498. b.Obj2.ulNumber + " - " + obj.Obj2.ulNumber + "\n" +
  499. b.Obj2.fNumber + " - " + obj.Obj2.fNumber + "\n" +
  500. b.Obj2.dNumber + " - " + obj.Obj2.dNumber + "\n" +
  501. b.Obj2.testString + "\n" +
  502. b.Obj2.cChar + " - " + obj.Obj2.cChar + "\n" +
  503. b.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  504. "");
  505. return;
  506. }
  507. }
  508. Assert.IsTrue(true);
  509. }
  510. [TestMethod]
  511. public void Serializer_LoadDeepObjectNullTerminatedUTF32_ReturnsTrue() {
  512. string FileName = "UnitTest_LoadDeepObjectNullTerminatedUTF32.dat";
  513. SerializeDeepTestObject obj = new SerializeDeepTestObject();
  514. obj.Fill();
  515. System.Fire.Serialize.Serializer.SerializeObject(FileName, obj, ArraySize.NullTerminated, StringEncoding.UTF32);
  516. if (File.Exists(FileName) == false) {
  517. Assert.Fail(FileName + " does not exist");
  518. return;
  519. } else {
  520. SerializeDeepTestObject b = (SerializeDeepTestObject)System.Fire.Serialize.Serializer.DeserializeObject(FileName, typeof(SerializeDeepTestObject), ArraySize.NullTerminated, StringEncoding.UTF32);
  521. //File.Delete(FileName);
  522. if (b == null) {
  523. Assert.Fail(FileName + " loaded object is null");
  524. return;
  525. }
  526. if (!b.Compare(obj)) {
  527. Assert.Fail(FileName + " doesn't have the correct values.\n" +
  528. b.TestString + " - " + obj.TestString + "\n" +
  529. "------------------------------\n" +
  530. (b.Obj1.boolean ? "True" : "False") + " - " + (obj.Obj1.boolean ? "True" : "False") + "\n" +
  531. b.Obj1.bNumber + " - " + obj.Obj1.bNumber + "\n" +
  532. b.Obj1.sNumber + " - " + obj.Obj1.sNumber + "\n" +
  533. b.Obj1.iNumber + " - " + obj.Obj1.iNumber + "\n" +
  534. b.Obj1.lNumber + " - " + obj.Obj1.lNumber + "\n" +
  535. b.Obj1.sbNumber + " - " + obj.Obj1.sbNumber + "\n" +
  536. b.Obj1.usNumber + " - " + obj.Obj1.usNumber + "\n" +
  537. b.Obj1.uiNumber + " - " + obj.Obj1.uiNumber + "\n" +
  538. b.Obj1.ulNumber + " - " + obj.Obj1.ulNumber + "\n" +
  539. b.Obj1.fNumber + " - " + obj.Obj1.fNumber + "\n" +
  540. b.Obj1.dNumber + " - " + obj.Obj1.dNumber + "\n" +
  541. b.Obj1.testString + "\n" +
  542. b.Obj1.cChar + " - " + obj.Obj1.cChar + "\n" +
  543. b.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj1.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  544. "------------------------------\n" +
  545. (b.Obj2.boolean ? "True" : "False") + " - " + (obj.Obj2.boolean ? "True" : "False") + "\n" +
  546. b.Obj2.bNumber + " - " + obj.Obj2.bNumber + "\n" +
  547. b.Obj2.sNumber + " - " + obj.Obj2.sNumber + "\n" +
  548. b.Obj2.iNumber + " - " + obj.Obj2.iNumber + "\n" +
  549. b.Obj2.lNumber + " - " + obj.Obj2.lNumber + "\n" +
  550. b.Obj2.sbNumber + " - " + obj.Obj2.sbNumber + "\n" +
  551. b.Obj2.usNumber + " - " + obj.Obj2.usNumber + "\n" +
  552. b.Obj2.uiNumber + " - " + obj.Obj2.uiNumber + "\n" +
  553. b.Obj2.ulNumber + " - " + obj.Obj2.ulNumber + "\n" +
  554. b.Obj2.fNumber + " - " + obj.Obj2.fNumber + "\n" +
  555. b.Obj2.dNumber + " - " + obj.Obj2.dNumber + "\n" +
  556. b.Obj2.testString + "\n" +
  557. b.Obj2.cChar + " - " + obj.Obj2.cChar + "\n" +
  558. b.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + " - " + obj.Obj2.time.ToString("dd. MM. yyyy H:mm:ss") + "\n" +
  559. "");
  560. return;
  561. }
  562. File.Delete(FileName);
  563. }
  564. Assert.IsTrue(true);
  565. }
  566. }
  567. }