package Ġapp . load . map reduce Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Json Primitive Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ 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 Ġjava . text . SimpleDateFormat Ċ Ċ class ĠTimestamp Tests : ĠString Spec () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" test Has Date Field On Presence Of Mongo Style Date Field " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Field Ġ= Ġ"\ $ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠGson (). fromJson (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ" ID ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" created DateTime ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ date Field : Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġcom . google . gson . JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Utility . has Date Field ( id , Ġ" created DateTime ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Should _ Parse _ Valid _ Incoming _ Date _ Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate One Ġ= Ġ" 2 0 1 9 - 1 2 - 1 4 T 1 5 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS SZ ZZ Z ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġdf . parse ( date One ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . get Valid Parsed DateTime ( date One ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Should _ Parse _ Valid _ Outgoing _ Date _ Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate One Ġ= Ġ" 2 0 1 9 - 1 2 - 1 4 T 1 5 : 0 1 : 0 2 . 0 0 0 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġdf . parse ( date One ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . get Valid Parsed DateTime ( date One ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" should Accept Non Utc Positive Offset Time And Return As Utc " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 0 : 0 1 : 0 2 . 0 0 0 + 0 1 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . kafka DateFormat ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 0 9 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" should Accept Non Utc Negative Offset Time And Return As Utc " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 0 : 0 1 : 0 2 . 0 0 0 - 0 1 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . kafka DateFormat ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 1 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" should Accept Utc Time And Return As Utc " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 0 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . kafka DateFormat ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 0 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" should Accept Non Utc Time And Return As Utc " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 1 0 : 0 1 : 0 2 . 0 0 0 + 0 1 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . kafka DateFormat ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" 2 0 2 0 - 0 5 - 1 2 T 0 9 : 0 1 : 0 2 . 0 0 0 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Should _ Throw _ Error _ With _ Invalid _ Date _ Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw < Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Utility . get Valid Parsed DateTime (" 2 0 1 9 - 1 2 - 1 4 T 1 5 : 0 1 : 0 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ" Un parse able Ġdate Ġfound : Ġ' 2 0 1 9 - 1 2 - 1 4 T 1 5 : 0 1 : 0 2 ', Ġdid Ġnot Ġmatch Ġany Ġsupported Ġdate Ġformats " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Has Date Field Returns False On Presence Of Non Mongo Style Date Field With Extra Field " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Field Ġ= Ġ"\ $ date " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠGson (). fromJson (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ" ID ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" created DateTime ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ date Field : Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" additional Field ": Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġcom . google . gson . JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! map Utility . has Date Field ( id , Ġ" created DateTime ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Has Date Field Returns False On Presence Of Non Mongo Style Date Object Field " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠGson (). fromJson (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ" ID ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" created DateTime ": Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" additional Field ": Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġcom . google . gson . JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! map Utility . has Date Field ( id , Ġ" created DateTime ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Has Date Field Returns False On Presence Of String Style Date Field " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠGson (). fromJson (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ" ID ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" created DateTime ": Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġcom . google . gson . JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! map Utility . has Date Field ( id , Ġ" created DateTime ") ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Has Date Field Returns False On Abs ence Of Date Field " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠGson (). fromJson (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ" ID " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġcom . google . gson . JsonObject :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! map Utility . has Date Field ( id , Ġ" created DateTime ") ĠshouldBe Ġ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime As Non Date Object Returned As Created " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Value Ġ= Ġ" test Date Field " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Modified . addProperty ("\ $ not Date ", Ġlast Modified Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( lastModified , Ġ" CREATED _ TIMESTAMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" CREATED _ TIMESTAMP ", Ġ" created DateTime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime As Date Object In Dump Format Returned As Date FieldValue In Kafka Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Value Ġ= Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Modified . addProperty ("\ $ date ", Ġlast Modified Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( lastModified , Ġ" CREATED _ TIMESTAMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 ", Ġ"_ lastModified DateTime Stri pped ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime As Date Object In Kafka Format Returned As Date FieldValue In Kafka Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Value Ġ= Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Modified . addProperty ("\ $ date ", Ġlast Modified Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( lastModified , Ġ" CREATED _ TIMESTAMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 ", Ġ"_ lastModified DateTime Stri pped ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime AsString Returned As Value " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Ġ= ĠJson Primitive (" test DateString ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( lastModified , Ġ" CREATED _ TIMESTAMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" test DateString ", Ġ"_ lastModified DateTime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime Array Returned As Created When Created NotBlank " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Value Ġ= Ġcom . google . gson . JsonArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray Value . add (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray Value . add (" 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( array Value , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( Map Utility Impl . EPOCH , Ġ" epoch ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime Null Returned As Created When Created NotBlank " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnull Value Ġ= Ġcom . google . gson . Json Null . INSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( null Value , Ġ" CREATED _ TIMESTAMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" CREATED _ TIMESTAMP ", Ġ" created DateTime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test LastModified DateTime Null Returned As Epoch When Created Blank " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnull Value Ġ= Ġcom . google . gson . Json Null . INSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . lastModified DateTime ( null Value , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( Map Utility Impl . EPOCH , Ġ" epoch ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Absent Optional DateTime As Object Returned As Blank " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ"_ optional DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . addProperty (" other Property ", Ġ" 1 2 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . optional DateTime ( fieldName , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ("", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Optional DateTime In Dump Format Returned AsString In Kafka Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTimeField Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTime Value Ġ= Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 Z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptional DateTimeField . addProperty ("\ $ date ", Ġoptional DateTime Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ"_ optional DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . add ( fieldName , Ġoptional DateTimeField ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . optional DateTime ( fieldName , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair (" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Optional DateTime In Kafka Format Returned AsString In Kafka Format " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTimeField Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTime Value Ġ= Ġ" 2 0 1 9 - 0 8 - 0 5 T 0 2 : 1 0 : 1 9 . 8 8 7 + 0 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptional DateTimeField . addProperty ("\ $ date ", Ġoptional DateTime Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ"_ optional DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . add ( fieldName , Ġoptional DateTimeField ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . optional DateTime ( fieldName , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( optional DateTime Value , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Optional DateTime AsString Returned AsString " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTime Value Ġ= Ġ" DATE _ FIELD _ VALUE " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ"_ optional DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . addProperty ( fieldName , Ġoptional DateTime Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . optional DateTime ( fieldName , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ( optional DateTime Value , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" test Invalid Optional DateTime As Object Returned As Blank " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Utility Ġ= ĠMap Utility Impl ( mock (), Ġmock ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTimeField Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptional DateTime Value Ġ= Ġ" DATE _ FIELD _ VALUE " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptional DateTimeField . addProperty ("\ $ invalid Property ", Ġoptional DateTime Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġcom . google . gson . JsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ"_ optional DateTime " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . add ( fieldName , Ġoptional DateTimeField ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġmap Utility . optional DateTime ( fieldName , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPair ("", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual ĠshouldBe Ġexpected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ