@@ -21,6 +21,7 @@ import XCTest
2121@testable import XCLogParser
2222
2323// swiftlint:disable type_body_length
24+ // swiftlint:disable file_length
2425class ActivityParserTests : XCTestCase {
2526
2627 let parser = ActivityParser ( )
@@ -226,6 +227,22 @@ class ActivityParserTests: XCTestCase {
226227 Token . double ( 2.2 ) ]
227228 } ( )
228229
230+ lazy var IDEActivityLogActionMessageTokens : [ Token ] = {
231+ let startTokens = [ Token . string ( " The identity of “XYZ.xcframework” is not recorded in your project. " ) ,
232+ Token . null,
233+ Token . int ( 9 ) ,
234+ Token . int ( 18446744073709551615 ) ,
235+ Token . int ( 575479851 ) ,
236+ Token . null,
237+ Token . int ( 0 ) ,
238+ Token . null,
239+ Token . classNameRef ( " DVTTextDocumentLocation " ) ]
240+ let endTokens = [ Token . string ( " categoryIdent " ) ,
241+ Token . null,
242+ Token . string ( " additionalDescription " ) ]
243+ return startTokens + textDocumentLocationTokens + endTokens + [ Token . string ( " action " ) ]
244+ } ( )
245+
229246 func testParseDVTTextDocumentLocation( ) throws {
230247 let tokens = textDocumentLocationTokens
231248 var iterator = tokens. makeIterator ( )
@@ -318,6 +335,30 @@ class ActivityParserTests: XCTestCase {
318335 }
319336 }
320337
338+ func testParseIDEActivityLogActionMessage( ) throws {
339+ var iterator = IDEActivityLogActionMessageTokens . makeIterator ( )
340+ let logActionMessage = try parser. parseIDEActivityLogActionMessage ( iterator: & iterator)
341+ XCTAssertEqual ( " The identity of “XYZ.xcframework” is not recorded in your project. " , logActionMessage. title)
342+ XCTAssertEqual ( " " , logActionMessage. shortTitle)
343+ XCTAssertEqual ( 9.0 , logActionMessage. timeEmitted)
344+ XCTAssertEqual ( 575479851 , logActionMessage. rangeStartInSectionText)
345+ XCTAssertEqual ( 18446744073709551615 , logActionMessage. rangeEndInSectionText)
346+ XCTAssertEqual ( 0 , logActionMessage. subMessages. count)
347+ XCTAssertEqual ( 0 , logActionMessage. severity)
348+ XCTAssertEqual ( " " , logActionMessage. type)
349+ XCTAssertNotNil ( logActionMessage. location)
350+ guard let documentLocation = logActionMessage. location as? DVTTextDocumentLocation else {
351+ XCTFail ( " documentLocation is nil " )
352+ return
353+ }
354+ XCTAssertEqual ( expectedDVTTextDocumentLocation. documentURLString, documentLocation. documentURLString)
355+ XCTAssertEqual ( expectedDVTTextDocumentLocation. timestamp, documentLocation. timestamp)
356+ XCTAssertEqual ( " categoryIdent " , logActionMessage. categoryIdent)
357+ XCTAssertEqual ( 0 , logActionMessage. secondaryLocations. count)
358+ XCTAssertEqual ( " additionalDescription " , logActionMessage. additionalDescription)
359+ XCTAssertEqual ( logActionMessage. action, " action " )
360+ }
361+
321362 func testParseIBDocumentMemberLocation( ) throws {
322363 var iterator = IBDocumentMemberLocationTokens . makeIterator ( )
323364 let documentLocation = try parser. parseDocumentLocation ( iterator: & iterator)
0 commit comments