2929class JSONSerializerTestCase (shared_test_lib .BaseTestCase ):
3030 """Tests for a JSON serializer object."""
3131
32+ # pylint: disable=protected-access
33+
3234 def _TestReadSerialized (self , serializer_object , json_dict ):
3335 """Tests the ReadSerialized function.
3436
@@ -78,6 +80,76 @@ class JSONAttributeContainerSerializerTest(JSONSerializerTestCase):
7880
7981 # pylint: disable=protected-access
8082
83+ def CreateTestEventData (self , event_data_stream ):
84+ """Creates a test event data.
85+
86+ Args:
87+ event_data_stream (EventDataStream): event data stream.
88+
89+ Returns:
90+ EventData: event data.
91+ """
92+ event_data = events .EventData ()
93+ event_data ._ignored = 'Not serialized'
94+ event_data ._parser_chain = 'test_parser'
95+ event_data .data_type = 'test:event2'
96+
97+ event_data .a_tuple = ('some item' , [234 , 52 , 15 ])
98+ event_data .empty_string = ''
99+ event_data .float = - 122.082203542683
100+ event_data .integer = 34
101+ event_data .my_list = ['asf' , 4234 , 2 , 54 , 'asf' ]
102+ event_data .null_value = None
103+ event_data .string = 'Normal string'
104+ event_data .unicode_string = 'And I am a unicorn.'
105+ event_data .zero_integer = 0
106+
107+ event_data_stream_identifier = event_data_stream .GetIdentifier ()
108+ event_data .SetEventDataStreamIdentifier (event_data_stream_identifier )
109+
110+ return event_data
111+
112+ def CreateTestEventDataStream (self ):
113+ """Creates a test event data stream.
114+
115+ Returns:
116+ EventDataSteam: event data stream.
117+ """
118+ test_file_path = self ._GetTestFilePath (['ímynd.dd' ])
119+
120+ volume_path_spec = path_spec_factory .Factory .NewPathSpec (
121+ dfvfs_definitions .TYPE_INDICATOR_OS , location = test_file_path )
122+ test_path_spec = path_spec_factory .Factory .NewPathSpec (
123+ dfvfs_definitions .TYPE_INDICATOR_TSK , location = '/' ,
124+ parent = volume_path_spec )
125+
126+ event_data_stream = events .EventDataStream ()
127+ event_data_stream .md5_hash = 'e3df0d2abd2c27fbdadfb41a47442520'
128+ event_data_stream .path_spec = test_path_spec
129+
130+ return event_data_stream
131+
132+ def CreateTestEventObject (self , event_data ):
133+ """Creates a test event object.
134+
135+ Args:
136+ event_data (EventData): event data.
137+
138+ Returns:
139+ EventObject: an event object.
140+ """
141+ test_date_time = dfdatetime_posix_time .PosixTime (timestamp = 1621839644 )
142+
143+ event = events .EventObject ()
144+ event .date_time = test_date_time
145+ event .timestamp = 1621839644
146+ event .timestamp_desc = definitions .TIME_DESCRIPTION_MODIFICATION
147+
148+ event_data_identifier = event_data .GetIdentifier ()
149+ event .SetEventDataIdentifier (event_data_identifier )
150+
151+ return event
152+
81153 def testReadAndWriteSerializedAnalysisReport (self ):
82154 """Test ReadSerialized and WriteSerialized of AnalysisReport."""
83155 expected_report_text = (
@@ -110,21 +182,8 @@ def testReadAndWriteSerializedAnalysisReport(self):
110182
111183 def testReadAndWriteSerializedEventData (self ):
112184 """Test ReadSerialized and WriteSerialized of EventData."""
113- expected_event_data = events .EventData ()
114- expected_event_data ._event_data_stream_identifier = 'event_data_stream.1'
115- expected_event_data ._ignored = 'Not serialized'
116- expected_event_data ._parser_chain = 'test_parser'
117- expected_event_data .data_type = 'test:event2'
118-
119- expected_event_data .a_tuple = ('some item' , [234 , 52 , 15 ])
120- expected_event_data .empty_string = ''
121- expected_event_data .float = - 122.082203542683
122- expected_event_data .integer = 34
123- expected_event_data .my_list = ['asf' , 4234 , 2 , 54 , 'asf' ]
124- expected_event_data .null_value = None
125- expected_event_data .string = 'Normal string'
126- expected_event_data .unicode_string = 'And I am a unicorn.'
127- expected_event_data .zero_integer = 0
185+ expected_event_data_stream = self .CreateTestEventDataStream ()
186+ expected_event_data = self .CreateTestEventData (expected_event_data_stream )
128187
129188 json_string = (
130189 json_serializer .JSONAttributeContainerSerializer .WriteSerialized (
@@ -140,7 +199,8 @@ def testReadAndWriteSerializedEventData(self):
140199 self .assertIsInstance (event_data , events .EventData )
141200
142201 expected_event_data_dict = {
143- '_event_data_stream_identifier' : 'event_data_stream.1' ,
202+ '_event_data_stream_identifier' : (
203+ expected_event_data .GetEventDataStreamIdentifier ().CopyToString ()),
144204 '_parser_chain' : 'test_parser' ,
145205 'a_tuple' : ('some item' , [234 , 52 , 15 ]),
146206 'data_type' : 'test:event2' ,
@@ -157,17 +217,7 @@ def testReadAndWriteSerializedEventData(self):
157217
158218 def testReadAndWriteSerializedEventDataStream (self ):
159219 """Test ReadSerialized and WriteSerialized of EventDataStream."""
160- test_file_path = self ._GetTestFilePath (['ímynd.dd' ])
161-
162- volume_path_spec = path_spec_factory .Factory .NewPathSpec (
163- dfvfs_definitions .TYPE_INDICATOR_OS , location = test_file_path )
164- test_path_spec = path_spec_factory .Factory .NewPathSpec (
165- dfvfs_definitions .TYPE_INDICATOR_TSK , location = '/' ,
166- parent = volume_path_spec )
167-
168- expected_event_data_stream = events .EventDataStream ()
169- expected_event_data_stream .md5_hash = 'e3df0d2abd2c27fbdadfb41a47442520'
170- expected_event_data_stream .path_spec = test_path_spec
220+ expected_event_data_stream = self .CreateTestEventDataStream ()
171221
172222 json_string = (
173223 json_serializer .JSONAttributeContainerSerializer .WriteSerialized (
@@ -184,21 +234,17 @@ def testReadAndWriteSerializedEventDataStream(self):
184234
185235 expected_event_data_stream_dict = {
186236 'md5_hash' : 'e3df0d2abd2c27fbdadfb41a47442520' ,
187- 'path_spec' : test_path_spec }
237+ 'path_spec' : expected_event_data_stream . path_spec }
188238
189239 event_data_stream_dict = event_data_stream .CopyToDict ()
190240
191241 self .assertEqual (event_data_stream_dict , expected_event_data_stream_dict )
192242
193243 def testReadAndWriteSerializedEventObject (self ):
194244 """Test ReadSerialized and WriteSerialized of EventObject."""
195- test_date_time = dfdatetime_posix_time .PosixTime (timestamp = 1621839644 )
196-
197- expected_event = events .EventObject ()
198- expected_event ._event_data_identifier = 'event_data.1'
199- expected_event .date_time = test_date_time
200- expected_event .timestamp = 1621839644
201- expected_event .timestamp_desc = definitions .TIME_DESCRIPTION_MODIFICATION
245+ expected_event_data_stream = self .CreateTestEventDataStream ()
246+ expected_event_data = self .CreateTestEventData (expected_event_data_stream )
247+ expected_event = self .CreateTestEventObject (expected_event_data )
202248
203249 json_string = (
204250 json_serializer .JSONAttributeContainerSerializer .WriteSerialized (
@@ -213,8 +259,9 @@ def testReadAndWriteSerializedEventObject(self):
213259 self .assertIsInstance (event , events .EventObject )
214260
215261 expected_event_dict = {
216- '_event_data_identifier' : 'event_data.1' ,
217- 'date_time' : test_date_time .CopyToDateTimeStringISO8601 (),
262+ '_event_data_identifier' : (
263+ expected_event .GetEventDataIdentifier ().CopyToString ()),
264+ 'date_time' : expected_event .date_time .CopyToDateTimeStringISO8601 (),
218265 'timestamp' : 1621839644 ,
219266 'timestamp_desc' : definitions .TIME_DESCRIPTION_MODIFICATION }
220267
@@ -296,6 +343,29 @@ def testReadAndWriteSerializedEventTag(self):
296343 sorted (event_tag_dict .items ()),
297344 sorted (expected_event_tag_dict .items ()))
298345
346+ def testReadAndWriteSerializedEventTripple (self ):
347+ """Test ReadSerialized and WriteSerialized of EventTripple."""
348+ expected_event_data_stream = self .CreateTestEventDataStream ()
349+ expected_event_data = self .CreateTestEventData (expected_event_data_stream )
350+ expected_event_tripple = events .EventTripple ()
351+ expected_event_tripple .event = self .CreateTestEventObject (
352+ expected_event_data )
353+ expected_event_tripple .event_data = expected_event_data
354+ expected_event_tripple .event_data_stream = expected_event_data_stream
355+
356+ json_string = (
357+ json_serializer .JSONAttributeContainerSerializer .WriteSerialized (
358+ expected_event_tripple ))
359+
360+ self .assertIsNotNone (json_string )
361+
362+ event_tripple = (
363+ json_serializer .JSONAttributeContainerSerializer .ReadSerialized (
364+ json_string ))
365+
366+ self .assertIsNotNone (event_tripple )
367+ self .assertIsInstance (event_tripple , events .EventTripple )
368+
299369 def testReadAndWriteSerializedSession (self ):
300370 """Test ReadSerialized and WriteSerialized of Session."""
301371 expected_session = sessions .Session ()
0 commit comments