From d1d0b7cabe6c6447676395807bfa1c3f7444385c Mon Sep 17 00:00:00 2001 From: Chris Dillard Date: Mon, 27 Jan 2025 17:52:18 -0700 Subject: [PATCH] NR-348708: add test --- .../Uncategorized/NRLoggerTests.h | 3 +++ .../Uncategorized/NRLoggerTests.m | 20 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.h b/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.h index 71f918bf..6150a793 100644 --- a/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.h +++ b/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.h @@ -18,4 +18,7 @@ } @property (nonatomic) int fileDescriptor; @property (nonatomic, strong) dispatch_source_t source; + +@property id mockNewRelicInternals; + @end diff --git a/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.m b/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.m index da02f03c..f89990c1 100644 --- a/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.m +++ b/Tests/Unit-Tests/NewRelicAgentTests/Uncategorized/NRLoggerTests.m @@ -24,12 +24,16 @@ #import "NRTestConstants.h" #import "NRAutoLogCollector.h" #import +#import "NewRelicAgentInternal.h" +#import @interface NRLogger() + (NRLogger *)logger; - (NSMutableDictionary*) commonBlockDict; @end +static NewRelicAgentInternal* _sharedInstance; + @implementation NRLoggerTests - (void) setUp { @@ -39,9 +43,16 @@ - (void) setUp [NRLogger setLogLevels:NRLogLevelDebug]; [NRLogger setRemoteLogLevel:NRLogLevelDebug]; - [NRLogger setLogEntityGuid:@"Entity-Guid-XXXX"]; + + self.mockNewRelicInternals = [OCMockObject mockForClass:[NewRelicAgentInternal class]]; + _sharedInstance = [[NewRelicAgentInternal alloc] init]; + _sharedInstance.analyticsController = [[NRMAAnalytics alloc] initWithSessionStartTimeMS:0.0]; + [[[[self.mockNewRelicInternals stub] classMethod] andReturn:_sharedInstance] sharedInstance]; + + [_sharedInstance.analyticsController setSessionAttribute:@"myAttribute" value:@(1)]; + NRMAAgentConfiguration *config = [[NRMAAgentConfiguration alloc] initWithAppToken:[[NRMAAppToken alloc] initWithApplicationToken:kNRMA_ENABLED_STAGING_APP_TOKEN] collectorAddress:KNRMA_TEST_COLLECTOR_HOST crashAddress:nil]; @@ -86,7 +97,8 @@ - (void) tearDown [NRMAMeasurements removeMeasurementConsumer:helper]; helper = nil; - + [self.mockNewRelicInternals stopMocking]; + _sharedInstance = nil; [NRMAMeasurements shutdown]; [NRMAFlags disableFeatures: NRFeatureFlag_LogReporting]; [NRLogger setLogTargets:NRLogTargetConsole]; @@ -183,6 +195,10 @@ - (void) testNRLogger { XCTAssertTrue([[decodedCommonBlock objectForKey:NRLogMessageInstrumentationProviderKey] isEqualToString:NRLogMessageMobileValue],@"instrumentation provider set incorrectly"); XCTAssertTrue([[decodedCommonBlock objectForKey:NRLogMessageInstrumentationVersionKey] isEqualToString:@"DEV"],@"instrumentation name set incorrectly"); + // Check for added session attributes + XCTAssertTrue([[decodedCommonBlock objectForKey:@"myAttribute"] isEqualToNumber:@(1)],@"session attribute set incorrectly"); + + #if TARGET_OS_WATCH XCTAssertTrue([[decodedCommonBlock objectForKey:NRLogMessageInstrumentationNameKey] isEqualToString:@"watchOSAgent"],@"instrumentation name set incorrectly"); #else