import Ġio . kot est . assertions . throw ables . should Throw Ċ import Ġio . kot est . core . spec . style . String Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġkotlin . time . Experimental Time Ċ Ċ @ Experimental Time Ċ class ĠValidator Equality Test Ġ: ĠString Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠValid Ġmessage Ġpasses Ġvalidation ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠValid Ġmessage Ġalternate Ġdate Ġformat Ġpasses Ġvalidation ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠValid Ġmessage Ġalternate Ġdate Ġformat Ġnumber Ġtwo Ġpasses Ġvalidation ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠValid Ġmessage Ġ- ĠRed acted ĠU CF S Ġprod Ġsample Ġ 1 Ġpasses Ġvalidation " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" trace Id " Ġ: Ġ" 5 9 4 9 7 c 6 8 - 4 e 3 a - 4 6 cd - 9 2 1 5 - 9 e 5 9 fe 4 b 2 2 f 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" unit OfWork Id " Ġ: Ġ" 4 5 7 e 6 a 1 c - c 2 8 8 - 4 9 7 c - a 4 a 2 - 1 e 5 0 bef 6 7 c 9 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ" db Object " Ġ: Ġ" xxx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 2 6 2 1 5 2 , 2 6 2 1 5 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" encryption KeyId " Ġ: Ġ" b 4 f 1 8 de 2 - 8 6 e 2 - 4 5 2 5 - 9 b 3 9 - 3 1 3 0 e 9 a 2 8 0 0 f ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxx Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 8 - 0 5 T 0 7 : 0 7 : 3 9 . 7 6 7 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" 7 b 6 1 b 7 9 f - 8 0 a 8 - 4 aed - aa 7 4 - 2 1 2 a 3 c 4 c 4 d 7 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 5 2 . 1 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 8 - 0 5 T 0 7 : 0 7 : 3 9 . 7 6 8 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠValid Ġmessage Ġ- ĠRed acted ĠU CF S Ġprod Ġsample Ġ 2 Ġpasses Ġvalidation " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" trace Id " Ġ: Ġ" 1 8 0 6 eb 6 9 - a 7 be - 4 ade - 8 3 0 6 - 0 0 f 4 6 e 6 8 5 2 c 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" unit OfWork Id " Ġ: Ġ" ff 0 4 1 e 1 f - 6 7 bb - 4 0 1 3 - a 0 0 f - 3 ea 7 8 7 da 4 8 6 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ" db Object " Ġ: Ġ" xxx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 2 6 2 1 5 2 , 2 6 2 1 5 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" encryption KeyId " Ġ: Ġ" ff 0 0 1 d 0 9 - 0 da 3 - 4 0 8 f - a 2 5 7 - fd cd 8 0 5 2 bd cd ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxx " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 8 - 0 5 T 0 7 : 0 7 : 0 0 . 1 0 5 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ NOT _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" 9 e 1 8 1 ca 2 - 2 d 1 1 - 4 7 0 3 - 9 2 8 a - 8 4 1 f 7 be 5 7 c 1 7 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 5 2 . 1 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 8 - 0 5 T 0 7 : 0 7 : 0 0 . 1 0 5 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġ'# / message /@ type ' Ġfield Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message : Ġrequired Ġkey Ġ[@ type ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message /@ type ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /@ type : Ġexpected Ġtype : ĠString , Ġfound : ĠInteger '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġstring Ġ'# / message /_ id / message Id ' Ġfield Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ NOT _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ id : Ġ#: Ġonly Ġ 1 Ġsub schema Ġmatches Ġout Ġof Ġ 2 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message /_ id ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ NOT _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ[ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 Ġ, 8 Ġ, Ġ 9 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ id : Ġ#: Ġonly Ġ 1 Ġsub schema Ġmatches Ġout Ġof Ġ 2 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġ'# / message /_ id ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ NOT _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ id : Ġ#: Ġonly Ġ 1 Ġsub schema Ġmatches Ġout Ġof Ġ 2 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message /_ id / message Id ' Ġsub field Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 6 9 3 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ NOT _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" OTHER _ ID " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ id : Ġ#: Ġonly Ġ 1 Ġsub schema Ġmatches Ġout Ġof Ġ 2 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġ'# / message /_ lastModified DateTime ' Ġdoes Ġnot Ġcause Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċĉĉ ĉ |{ Ċĉĉ ĉ | ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", Ċĉĉ ĉ | ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", Ċĉĉ ĉ | ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", Ċĉĉ ĉ | ĠĠ Ġ" message " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ}, Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ} Ċĉĉ ĉ | ĠĠ Ġ}, Ċĉĉ ĉ | ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", Ċĉĉ ĉ | ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " Ċĉĉ ĉ |} Ċĉĉ ĉ """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠNull Ġ'# / message /_ lastModified DateTime ' Ġdoes Ġnot Ġcause Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċĉĉ ĉ |{ Ċĉĉ ĉ | ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", Ċĉĉ ĉ | ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", Ċĉĉ ĉ | ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", Ċĉĉ ĉ | ĠĠ Ġ" message " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ}, Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġnull , Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ} Ċĉĉ ĉ | ĠĠ Ġ}, Ċĉĉ ĉ | ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", Ċĉĉ ĉ | ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " Ċĉĉ ĉ |} Ċĉĉ ĉ """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġ'# / message /_ lastModified DateTime ' Ġdoes Ġnot Ġcause Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċĉĉ ĉ |{ Ċĉĉ ĉ | ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", Ċĉĉ ĉ | ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", Ċĉĉ ĉ | ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", Ċĉĉ ĉ | ĠĠ Ġ" message " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ}, Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ"", Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ Ċĉĉ ĉ | ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " Ċĉĉ ĉ | ĠĠĠĠĠĠ Ġ} Ċĉĉ ĉ | ĠĠ Ġ}, Ċĉĉ ĉ | ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", Ċĉĉ ĉ | ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " Ċĉĉ ĉ |} Ċĉĉ ĉ """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message /_ lastModified DateTime ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ 4 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ lastModified DateTime : Ġ#: Ġno Ġsub schema Ġmatched Ġout Ġof Ġthe Ġtotal Ġ 2 Ġsub schemas '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message /_ lastModified DateTime ' Ġformat Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 1 3 - 0 3 - 1 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message /_ lastModified DateTime : Ġ#: Ġno Ġsub schema Ġmatched Ġout Ġof Ġthe Ġtotal Ġ 2 Ġsub schemas '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġ'# / message / db Object ' Ġfield Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message : Ġrequired Ġkey Ġ[ db Object ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message / db Object ' Ġtype Ġ Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / db Object : Ġexpected Ġtype : ĠString , Ġfound : ĠJSONObject '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġ'# / message / db Object ' Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / db Object : Ġexpected Ġmin Length : Ġ 1 , Ġactual : Ġ 0 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġ'# / message / encryption ' Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message : Ġrequired Ġkey Ġ[ encryption ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ" abc ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption : Ġexpected Ġtype : ĠJSONObject , Ġfound : ĠString '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġkey Encryption KeyId Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption : Ġrequired Ġkey Ġ[ key Encryption KeyId ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġinitial isation Vector Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption : Ġrequired Ġkey Ġ[ initial isation Vector ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠMissing Ġencrypted Encryption Key Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption : Ġrequired Ġkey Ġ[ encrypted Encryption Key ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġkey Encryption KeyId Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / key Encryption KeyId : Ġstring Ġ[] Ġdoes Ġnot Ġmatch Ġpattern Ġ^ cloud h sm :\\ d +, \\ d +$ '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġinitial isation Vector Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / initial isation Vector : Ġexpected Ġmin Length : Ġ 1 , Ġactual : Ġ 0 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠEmpty Ġencrypted Encryption Key Ġfrom Ġ'# / message / encryption ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / encrypted Encryption Key : Ġexpected Ġmin Length : Ġ 1 , Ġactual : Ġ 0 '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message / encryption / key Encryption KeyId ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ 4 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / key Encryption KeyId : Ġexpected Ġtype : ĠString , Ġfound : ĠInteger '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġinitial isation Vector Ġ'# / message / encryption / initial isation Vector ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / initial isation Vector : Ġexpected Ġtype : ĠString , Ġfound : ĠJSONObject '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : ĠInc orrect Ġ'# / message / encryption / encrypted Encryption Key ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ[" answer ", Ġ 4 2 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / encrypted Encryption Key : Ġexpected Ġtype : ĠString , Ġfound : ĠJSONArray '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality ĠSchema : ĠInc orrect Ġkey Encryption KeyId Ġ'# / message / encryption / key Encryption KeyId ' Ġtype Ġcauses Ġvalidation Ġfailure ." Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : aaa , bbbb ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# / message / encryption / key Encryption KeyId : Ġstring Ġ[ cloud h sm : aaa , bbbb ] Ġdoes Ġnot Ġmatch Ġpattern Ġ^ cloud h sm :\\ d +, \\ d +$ '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : Ġ'# / message / unit OfWork Id ' Ġis Ġrequired " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# : Ġrequired Ġkey Ġ[ unit OfWork Id ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : Ġ'# / message / unit OfWork Id ' Ġcan Ġbe Ġnull " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġ" 0 9 1 f 2 9 ab - b 6 c 5 - 4 1 1 c - 8 5 1 e - 1 5 6 8 3 ce 5 3 c 4 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : Ġ'# / message / trace Id ' Ġis Ġrequired " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Invalid Message Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Message Ġfailed Ġschema Ġvalidation : Ġ'# : Ġrequired Ġkey Ġ[ trace Id ] Ġnot Ġfound '. " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Equality Ġschema : Ġ'# / message / trace Id ' Ġcan Ġbe Ġnull " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestUtils . equality Message Validator () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidator (). validate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" trace Id " Ġ: Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" unit OfWork Id " Ġ: Ġ" 3 1 faa 5 5 f - c 5 e 8 - 4 5 8 1 - 8 9 7 3 - 3 8 3 db 3 1 ddd 7 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ"@ type " Ġ: Ġ" V 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" message " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" db Object " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" encryption " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" key Encryption KeyId " Ġ: Ġ" cloud h sm : 1 2 , 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" encrypted Encryption Key " Ġ: Ġ" xxxx xx ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" initial isation Vector " Ġ: Ġ" xxxxxxxx ==" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"@ type " Ġ: Ġ" EQUAL ITY _ QUEST IONS _ AN SW ER ED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ lastModified DateTime " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ"_ id " Ġ: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ" message Id " Ġ: Ġ" f 1 d 4 7 2 3 b - f daa - 4 1 2 3 - 8 e 2 0 - e 6 eca 6 c 0 3 6 4 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" version " Ġ: Ġ" core - 4 . release _ 1 4 7 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" timestamp " Ġ: Ġ" 2 0 2 0 - 0 5 - 2 1 T 1 7 : 1 8 : 1 5 . 7 0 6 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ġ// end Ġinit Ċ } Ċ