Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ios
/
yh_analytics
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
周蓉君
10 years ago
Commit
289128b6ce19bfd6cdb4c596cbe9655448529df3
1 parent
70ebcbd1
新增YH_AnalyticsLogicTest. Review by 阿瑟。
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
167 additions
and
67 deletions
YH_Analytics/YH_Analytics.xcodeproj/project.pbxproj
YH_Analytics/YH_Analytics/AppDelegate.m
YH_Analytics/YH_Analytics/ViewController.m
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHAssemblyAssistant.h
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHAssemblyAssistant.m
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHCrashReporter.m
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHNetworkAssistant.h
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHNetworkAssistant.m
YH_Analytics/YH_Analytics/YH_Analytics/YH_Analytics.h
YH_Analytics/YH_Analytics/YH_Analytics/YH_Analytics.m
YH_Analytics/YH_AnalyticsTests/YH_AnalyticsLogicTests.m
YH_Analytics/YH_AnalyticsTests/YH_AnalyticsTests.m
YH_Analytics/YH_Analytics.xcodeproj/project.pbxproj
View file @
289128b
...
...
@@ -30,6 +30,7 @@
CA7AC79E1ADE0C3900F30791 /* YHDeviceFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7AC79D1ADE0C3900F30791 /* YHDeviceFactoryTests.m */; };
CA7AC7A01ADE0C4F00F30791 /* YHEventFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7AC79F1ADE0C4F00F30791 /* YHEventFactoryTests.m */; };
CA7AC7A21ADE0C6600F30791 /* YHStatusFactoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7AC7A11ADE0C6600F30791 /* YHStatusFactoryTests.m */; };
CA7AC7A41ADF9FCB00F30791 /* YH_AnalyticsLogicTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA7AC7A31ADF9FCB00F30791 /* YH_AnalyticsLogicTests.m */; };
CABC32831AD7CEB8002A4260 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CABC32821AD7CEB8002A4260 /* libOCMock.a */; };
E74D45B21ABA7C6300EFE12E /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E74D458E1ABA7C6300EFE12E /* AFHTTPRequestOperation.m */; };
E74D45B31ABA7C6300EFE12E /* AFHTTPRequestOperationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E74D45901ABA7C6300EFE12E /* AFHTTPRequestOperationManager.m */; };
...
...
@@ -126,6 +127,7 @@
CA7AC79D1ADE0C3900F30791 /* YHDeviceFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YHDeviceFactoryTests.m; sourceTree = "<group>"; };
CA7AC79F1ADE0C4F00F30791 /* YHEventFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YHEventFactoryTests.m; sourceTree = "<group>"; };
CA7AC7A11ADE0C6600F30791 /* YHStatusFactoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YHStatusFactoryTests.m; sourceTree = "<group>"; };
CA7AC7A31ADF9FCB00F30791 /* YH_AnalyticsLogicTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YH_AnalyticsLogicTests.m; sourceTree = "<group>"; };
CABC32791AD7CE40002A4260 /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = "<group>"; };
CABC327A1AD7CE40002A4260 /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = "<group>"; };
CABC327B1AD7CE40002A4260 /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = "<group>"; };
...
...
@@ -291,6 +293,7 @@
CA7AC78D1ADE08AF00F30791 /* ModelTest */,
CA7AC78C1ADE088D00F30791 /* UtilsTest */,
194EDC8F1A7F52D100421E6C /* YH_AnalyticsTests.m */,
CA7AC7A31ADF9FCB00F30791 /* YH_AnalyticsLogicTests.m */,
CA7AC7821ADE06F300F30791 /* YHCrashReporterTests.m */,
CA7AC7841ADE073200F30791 /* NSString+YHAnalyticsTests.m */,
194EDC8D1A7F52D100421E6C /* Supporting Files */,
...
...
@@ -688,6 +691,7 @@
CA7AC7931ADE08F000F30791 /* YHEventTests.m in Sources */,
CA7AC7851ADE073200F30791 /* NSString+YHAnalyticsTests.m in Sources */,
CA7AC79E1ADE0C3900F30791 /* YHDeviceFactoryTests.m in Sources */,
CA7AC7A41ADF9FCB00F30791 /* YH_AnalyticsLogicTests.m in Sources */,
CA7AC79A1ADE0BD500F30791 /* YHDataFactoryTests.m in Sources */,
CA7AC79C1ADE0C0800F30791 /* YHErrorFactoryTests.m in Sources */,
CA7AC7A01ADE0C4F00F30791 /* YHEventFactoryTests.m in Sources */,
...
...
YH_Analytics/YH_Analytics/AppDelegate.m
View file @
289128b
...
...
@@ -20,18 +20,18 @@
// Override point for customization after application launch.
// 设置发送策略
// [YH_Analytics shareInstance].logStrategy = LogStrategyCustom;
// [YH_Analytics share
d
Instance].logStrategy = LogStrategyCustom;
// 自定义发送时间,从服务器获取
[
YH_Analytics
shareInstance
].
customInterval
=
1000
;
[
YH_Analytics
share
d
Instance
].
customInterval
=
1000
;
// 设置用户id
[
YH_Analytics
shareInstance
].
uid
=
@"0000001"
;
[
YH_Analytics
share
d
Instance
].
uid
=
@"0000001"
;
// 启动
[[
YH_Analytics
shareInstance
]
startWithAppId
:
@"appid"
];
[[
YH_Analytics
share
d
Instance
]
startWithAppId
:
@"appid"
];
NSLog
(
@"logStrategy == %d"
,
[
YH_Analytics
shareInstance
].
logStrategy
);
NSLog
(
@"logStrategy == %d"
,
[
YH_Analytics
share
d
Instance
].
logStrategy
);
return
YES
;
}
...
...
YH_Analytics/YH_Analytics/ViewController.m
View file @
289128b
...
...
@@ -20,7 +20,7 @@
[
super
viewDidLoad
];
[
self
.
imageView
setImage
:[
UIImage
imageNamed
:
@"stastsold"
]];
self
.
segment
.
selectedSegmentIndex
=
[
YH_Analytics
shareInstance
].
logStrategy
;
self
.
segment
.
selectedSegmentIndex
=
[
YH_Analytics
share
d
Instance
].
logStrategy
;
}
-
(
void
)
didReceiveMemoryWarning
{
...
...
@@ -31,7 +31,7 @@
-
(
IBAction
)
click
:
(
id
)
sender
{
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
[[
YH_Analytics
shareInstance
]
logEvent
:
@"test"
parameters
:
[[
YH_Analytics
share
d
Instance
]
logEvent
:
@"test"
parameters
:
@
{
@"key1"
:
[
NSString
stringWithFormat
:
@"%d"
,
i
],
@"key2"
:
@"v2"
}];
...
...
@@ -43,7 +43,7 @@
// for (int i = 0; i< 10; i++) {
[[
YH_Analytics
shareInstance
]
logError
:
@"NETWORK"
parameters
:
[[
YH_Analytics
share
d
Instance
]
logError
:
@"NETWORK"
parameters
:
@
{
JsonKeyErrorEC
:
@"503"
,
// 错误码
JsonKeyErrorEI:
@"getUserAvatar"
//发生错误接口
}];
...
...
@@ -68,17 +68,17 @@
switch
(
index
)
{
case
0
:
{
[
YH_Analytics
shareInstance
].
logStrategy
=
LogStrategyAppLaunch
;
[
YH_Analytics
share
d
Instance
].
logStrategy
=
LogStrategyAppLaunch
;
break
;
}
case
1
:
{
[
YH_Analytics
shareInstance
].
logStrategy
=
LogStrategyCustom
;
[
YH_Analytics
share
d
Instance
].
logStrategy
=
LogStrategyCustom
;
[[
NSUserDefaults
standardUserDefaults
]
setDouble
:
60
forKey
:
kKeyUserDefaultsCustomInterval
];
[[
NSUserDefaults
standardUserDefaults
]
synchronize
];
break
;
}
case
2
:
{
[
YH_Analytics
shareInstance
].
logStrategy
=
LogStrategyImmedi
;;
[
YH_Analytics
share
d
Instance
].
logStrategy
=
LogStrategyImmedi
;;
break
;
}
default
:
...
...
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHAssemblyAssistant.h
View file @
289128b
...
...
@@ -31,7 +31,7 @@ extern NSString * const JsonKeyDataTypeErrors;
@property
(
strong
,
nonatomic
)
YHStatus
*
currentStatus
;
@property
(
strong
,
nonatomic
)
NSMutableDictionary
*
immediUploadItemDic
;
// 用于立即发送策略下(device信息是相同的)
+
(
instancetype
)
shareInstance
;
+
(
instancetype
)
share
d
Instance
;
-
(
BOOL
)
canPersisiting
;
...
...
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHAssemblyAssistant.m
View file @
289128b
...
...
@@ -57,16 +57,16 @@ NSString * const JsonKeyDataTypeErrors = @"errors";
#pragma mark - 初始化
static
dispatch_queue_t
persisitingQueue
;
+
(
instancetype
)
shareInstance
+
(
instancetype
)
share
d
Instance
{
static
YHAssemblyAssistant
*
_shareInstance
;
static
YHAssemblyAssistant
*
_share
d
Instance
;
static
dispatch_once_t
onceToken
;
dispatch_once
(
&
onceToken
,
^
{
_shareInstance
=
[[
YHAssemblyAssistant
alloc
]
init
];
_share
d
Instance
=
[[
YHAssemblyAssistant
alloc
]
init
];
persisitingQueue
=
dispatch_queue_create
(
"com.yoho.analytics.persisiting"
,
NULL
);
});
return
_shareInstance
;
return
_share
d
Instance
;
}
-
(
id
)
init
...
...
@@ -289,7 +289,7 @@ static dispatch_queue_t persisitingQueue;
if
(
data
)
{
[[
YHNetworkAssistant
shareInstance
]
postWhitAPI
:
kYASApiMethod
parameters
:
data
from
:
self
success
:
^
(
id
responseObject
)
{
[[
YHNetworkAssistant
share
d
Instance
]
postWhitAPI
:
kYASApiMethod
parameters
:
data
from
:
self
success
:
^
(
id
responseObject
)
{
// NSLog(@"responseObject = %@", responseObject);
}
failure
:
^
(
NSError
*
error
)
{
NSLog
(
@"error = %@"
,
error
.
localizedDescription
)
;
...
...
@@ -299,11 +299,11 @@ static dispatch_queue_t persisitingQueue;
-
(
void
)
uploadDiskData
{
NSDictionary
*
uploadData
=
[[
YHAssemblyAssistant
shareInstance
]
getUploadData
];
NSDictionary
*
uploadData
=
[[
YHAssemblyAssistant
share
d
Instance
]
getUploadData
];
if
(
uploadData
)
{
[[
YHNetworkAssistant
shareInstance
]
postWhitAPI
:
kYASApiMethod
parameters
:
uploadData
from
:
self
success
:
^
(
id
responseObject
)
{
[[
YHNetworkAssistant
share
d
Instance
]
postWhitAPI
:
kYASApiMethod
parameters
:
uploadData
from
:
self
success
:
^
(
id
responseObject
)
{
// NSLog(@"responseObject = %@", responseObject);
[
self
removeLocalFile
]
;
}
failure
:
^
(
NSError
*
error
)
{
...
...
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHCrashReporter.m
View file @
289128b
...
...
@@ -59,14 +59,14 @@ void uncaughtCrashExceptionHandler(NSException *exception)
+
(
YHCrashReporter
*
)
sharedInstance
{
static
YHCrashReporter
*
shareInstance
=
nil
;
static
YHCrashReporter
*
share
d
Instance
=
nil
;
static
dispatch_once_t
onceToken
;
dispatch_once
(
&
onceToken
,
^
{
shareInstance
=
[[
YHCrashReporter
alloc
]
init
];
share
d
Instance
=
[[
YHCrashReporter
alloc
]
init
];
});
return
shareInstance
;
return
share
d
Instance
;
}
#pragma mark - Lifetime methods
...
...
@@ -122,7 +122,7 @@ void uncaughtCrashExceptionHandler(NSException *exception)
{
NSLog
(
@"crash============:
\n
%@"
,
userInfo
);
if
(
userInfo
)
{
[[
YH_Analytics
shareInstance
]
logError
:
@"CRASH"
parameters
:
@
{
JsonKeyErrorST
:
userInfo
}];
[[
YH_Analytics
share
d
Instance
]
logError
:
@"CRASH"
parameters
:
@
{
JsonKeyErrorST
:
userInfo
}];
}
}
...
...
@@ -130,7 +130,7 @@ void uncaughtCrashExceptionHandler(NSException *exception)
{
NSLog
(
@"crash============:
\n
%@"
,
userInfo
);
if
(
userInfo
)
{
[[
YH_Analytics
shareInstance
]
logError
:
@"CRASH"
parameters
:
@
{
JsonKeyErrorST
:
userInfo
}];
[[
YH_Analytics
share
d
Instance
]
logError
:
@"CRASH"
parameters
:
@
{
JsonKeyErrorST
:
userInfo
}];
}
}
...
...
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHNetworkAssistant.h
View file @
289128b
...
...
@@ -19,7 +19,7 @@ static NSString * const YHEAPIErrorDomain = @"YHEAPIErrorDomain";
#pragma mark - Init
+
(
instancetype
)
shareInstance
;
+
(
instancetype
)
share
d
Instance
;
/**
* Initializes your network engine with a hostname
...
...
YH_Analytics/YH_Analytics/YH_Analytics/Utils/YHNetworkAssistant.m
View file @
289128b
...
...
@@ -28,15 +28,15 @@ AFNetworkReachabilityStatus _currentNetworkStatus;
#pragma mark - Init
+
(
instancetype
)
shareInstance
+
(
instancetype
)
share
d
Instance
{
static
YHNetworkAssistant
*
_shareInstance
;
static
YHNetworkAssistant
*
_share
d
Instance
;
static
dispatch_once_t
onceToken
;
dispatch_once
(
&
onceToken
,
^
{
_sQueue
=
dispatch_queue_create
(
"cn.yoho.analytics.network.squeue"
,
0
);
// create a serial queue
_allOperations
=
[
NSMutableSet
new
];
_reachabilityChangedHandlers
=
[
NSMutableArray
array
];
_shareInstance
=
[[
YHNetworkAssistant
alloc
]
initWithHostName
:
kAnalizedURL
apiPath
:
nil
customHeaderFields
:
nil
];
_share
d
Instance
=
[[
YHNetworkAssistant
alloc
]
initWithHostName
:
kAnalizedURL
apiPath
:
nil
customHeaderFields
:
nil
];
// 监听网络状态
[[
AFNetworkReachabilityManager
sharedManager
]
setReachabilityStatusChangeBlock
:
^
(
AFNetworkReachabilityStatus
status
)
{
...
...
@@ -53,7 +53,7 @@ AFNetworkReachabilityStatus _currentNetworkStatus;
[[
AFNetworkReachabilityManager
sharedManager
]
startMonitoring
];
});
return
_shareInstance
;
return
_share
d
Instance
;
}
...
...
YH_Analytics/YH_Analytics/YH_Analytics/YH_Analytics.h
View file @
289128b
...
...
@@ -22,7 +22,7 @@ typedef enum _YohoMobStatLogStrategy {
/**
* 获取统计对象的实例
*/
+
(
YH_Analytics
*
)
shareInstance
;
+
(
YH_Analytics
*
)
share
d
Instance
;
/**
* 此处AppId即为应用的appKey
...
...
YH_Analytics/YH_Analytics/YH_Analytics/YH_Analytics.m
View file @
289128b
...
...
@@ -50,16 +50,16 @@
static
dispatch_queue_t
persisitingQueue
;
+
(
YH_Analytics
*
)
shareInstance
+
(
YH_Analytics
*
)
share
d
Instance
{
static
YH_Analytics
*
shareInstance
=
nil
;
static
YH_Analytics
*
share
d
Instance
=
nil
;
static
dispatch_once_t
onceToken
;
dispatch_once
(
&
onceToken
,
^
{
shareInstance
=
[[
YH_Analytics
alloc
]
init
];
share
d
Instance
=
[[
YH_Analytics
alloc
]
init
];
});
return
shareInstance
;
return
share
d
Instance
;
}
-
(
id
)
init
...
...
@@ -91,36 +91,36 @@ static dispatch_queue_t persisitingQueue;
CTRadioAccessTechnologyeHRPD - 3G (or 3.5 - eHRPD is to allow migration from CDMA EVDO to LTE)
CTRadioAccessTechnologyLTE - 4G (allowed to be called 4G by the ITU as mentioend above)
*/
[[
YHNetworkAssistant
shareInstance
]
addReachabilityChangedHandler
:
^
(
AFNetworkReachabilityStatus
networkStatus
)
{
[[
YHNetworkAssistant
share
d
Instance
]
addReachabilityChangedHandler
:
^
(
AFNetworkReachabilityStatus
networkStatus
)
{
CTTelephonyNetworkInfo
*
netInfo
=
[[
CTTelephonyNetworkInfo
alloc
]
init
]
;
switch
(
networkStatus
)
{
case
AFNetworkReachabilityStatusUnknown
:
case
AFNetworkReachabilityStatusNotReachable
:
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatusUnknow
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatusUnknow
;
break
;
case
AFNetworkReachabilityStatusReachableViaWWAN
:
{
if
([
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyGPRS
]
||
[
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyEdge
])
{
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatus2G
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatus2G
;
}
else
if
([
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyWCDMA
]
||
[
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyHSDPA
]
||
[
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyHSUPA
]
||
[
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyeHRPD
])
{
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatus3G
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatus3G
;
}
else
if
([
netInfo
.
currentRadioAccessTechnology
isEqualToString
:
CTRadioAccessTechnologyLTE
])
{
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatus4G
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatus4G
;
}
else
{
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatusUnknow
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatusUnknow
;
}
}
break
;
case
AFNetworkReachabilityStatusReachableViaWiFi
:
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
net
=
kNetWorkStatusWIFI
;
[
YHAssemblyAssistant
share
d
Instance
].
currentStatus
.
net
=
kNetWorkStatusWIFI
;
break
;
default
:
break
;
}
[[
YHAssemblyAssistant
shareInstance
]
updateImmediUploadDic
]
;
[[
YHAssemblyAssistant
share
d
Instance
]
updateImmediUploadDic
]
;
}];
}
...
...
@@ -167,14 +167,14 @@ static dispatch_queue_t persisitingQueue;
{
[
self
registerCrashReporter
];
[
self
registerAppWillEnterForegroundNotification
];
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
sid
=
self
.
session
;
[
YHAssemblyAssistant
shareInstance
].
device
.
ak
=
appId
;
[
YHAssemblyAssistant
sharedInstance
].
currentStatus
.
sid
=
self
.
session
;
[
YHAssemblyAssistant
sharedInstance
].
device
.
ak
=
appId
;
/*
构建即时发送模式下数据
*/
[[
YHAssemblyAssistant
shareInstance
]
prepareImmediUploadDic
];
[[
YHAssemblyAssistant
share
d
Instance
]
prepareImmediUploadDic
];
/*
检查发送模式
...
...
@@ -230,9 +230,9 @@ static dispatch_queue_t persisitingQueue;
// 立即发送策略
if
(
self
.
logStrategy
==
LogStrategyImmedi
)
{
[[
YHAssemblyAssistant
shareInstance
]
uploadImmedilyWithEvent
:
event
];
[[
YHAssemblyAssistant
share
d
Instance
]
uploadImmedilyWithEvent
:
event
];
}
else
{
[[
YHAssemblyAssistant
shareInstance
]
saveItemData
:
event
];
[[
YHAssemblyAssistant
share
d
Instance
]
saveItemData
:
event
];
}
}
...
...
@@ -248,9 +248,9 @@ static dispatch_queue_t persisitingQueue;
error
.
param
=
param
;
if
(
self
.
logStrategy
==
LogStrategyImmedi
)
{
[[
YHAssemblyAssistant
shareInstance
]
uploadImmedilyWithEvent
:
error
];
[[
YHAssemblyAssistant
share
d
Instance
]
uploadImmedilyWithEvent
:
error
];
}
else
{
[[
YHAssemblyAssistant
shareInstance
]
saveItemData
:
error
];
[[
YHAssemblyAssistant
share
d
Instance
]
saveItemData
:
error
];
}
}
...
...
@@ -265,7 +265,7 @@ static dispatch_queue_t persisitingQueue;
// 发送本地持久化数据
-
(
void
)
uploadDiskData
{
[[
YHAssemblyAssistant
shareInstance
]
uploadDiskData
];
[[
YHAssemblyAssistant
share
d
Instance
]
uploadDiskData
];
}
// 发送本地持久化数据
...
...
@@ -302,11 +302,11 @@ static dispatch_queue_t persisitingQueue;
CLLocationCoordinate2D
loc
=
[
newLocation
coordinate
];
float
longitude
=
loc
.
longitude
;
float
latitude
=
loc
.
latitude
;
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
lo
=
[
NSString
stringWithFormat
:
@"%f"
,
longitude
];
[
YHAssemblyAssistant
shareInstance
].
currentStatus
.
la
=
[
NSString
stringWithFormat
:
@"%f"
,
latitude
];
[
YHAssemblyAssistant
sharedInstance
].
currentStatus
.
lo
=
[
NSString
stringWithFormat
:
@"%f"
,
longitude
];
[
YHAssemblyAssistant
sharedInstance
].
currentStatus
.
la
=
[
NSString
stringWithFormat
:
@"%f"
,
latitude
];
// 更新经纬度
[[
YHAssemblyAssistant
share
Instance
].
immediUploadItemDic
setObject
:[
YHAssemblyAssistant
share
Instance
].
device
.
jsonDictionary
forKey
:
JsonKeyDataTypeDevice
];
[[
YHAssemblyAssistant
share
dInstance
].
immediUploadItemDic
setObject
:[
YHAssemblyAssistant
shared
Instance
].
device
.
jsonDictionary
forKey
:
JsonKeyDataTypeDevice
];
}
...
...
YH_Analytics/YH_AnalyticsTests/YH_AnalyticsLogicTests.m
0 → 100644
View file @
289128b
//
// YH_AnalyticsLogicTests.m
// YH_Analytics
//
// Created by Zhou Rongjun on 15/4/16.
// Copyright (c) 2015年 YOHO. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "OCMock.h"
#import <CoreLocation/CoreLocation.h>
#import "YHCrashReporter.h"
#import "YHAssemblyAssistant.h"
#import "YH_Analytics.h"
@interface
YH_AnalyticsLogicTests
:
XCTestCase
{
@private
id
locationManageMock
;
id
assemblyAssistantMock
;
id
crashReporterMock
;
id
networkAssistantMock
;
YH_Analytics
*
analytics
;
}
@end
@implementation
YH_AnalyticsLogicTests
-
(
void
)
setUp
{
[
super
setUp
];
// Put setup code here. This method is called before the invocation of each test method in the class.
locationManageMock
=
OCMClassMock
([
CLLocationManager
class
]);
assemblyAssistantMock
=
OCMClassMock
([
YHAssemblyAssistant
class
]);
OCMStub
([
assemblyAssistantMock
sharedInstance
]).
andReturn
(
assemblyAssistantMock
);
crashReporterMock
=
OCMClassMock
([
YHCrashReporter
class
]);
OCMStub
([
crashReporterMock
sharedInstance
]).
andReturn
(
crashReporterMock
);
networkAssistantMock
=
OCMClassMock
([
YHNetworkAssistant
class
]);
OCMStub
([
networkAssistantMock
sharedInstance
]).
andReturn
(
networkAssistantMock
);
}
-
(
void
)
tearDown
{
// Put teardown code here. This method is called after the invocation of each test method in the class.
[
super
tearDown
];
}
#pragma mark - 逻辑分支测试
-
(
void
)
testStartWithAppIdMethodPrepareImmediUploadDic
{
NSLog
(
@"%@ start"
,
self
.
name
);
analytics
=
[[
YH_Analytics
alloc
]
init
];
OCMExpect
([
assemblyAssistantMock
prepareImmediUploadDic
]);
[
analytics
startWithAppId
:
@"appId"
];
OCMVerifyAll
(
assemblyAssistantMock
);
NSLog
(
@"%@ end"
,
self
.
name
);
}
-
(
void
)
testStartWithAppIdMethodWithLogStrategyAppLaunch
{
NSLog
(
@"%@ start"
,
self
.
name
);
analytics
=
[[
YH_Analytics
alloc
]
init
];
analytics
.
logStrategy
=
LogStrategyAppLaunch
;
OCMExpect
([
assemblyAssistantMock
uploadDiskData
]);
[
analytics
startWithAppId
:
@"appId"
];
OCMVerifyAll
(
assemblyAssistantMock
);
NSLog
(
@"%@ end"
,
self
.
name
);
}
-
(
void
)
testStartWithAppIdMethodWithLogStrategyCustom
{
NSLog
(
@"%@ start"
,
self
.
name
);
analytics
=
[[
YH_Analytics
alloc
]
init
];
analytics
.
logStrategy
=
LogStrategyCustom
;
OCMExpect
([
assemblyAssistantMock
uploadDiskData
]);
[
analytics
startWithAppId
:
@"appId"
];
OCMVerifyAll
(
assemblyAssistantMock
);
NSLog
(
@"%@ end"
,
self
.
name
);
}
-
(
void
)
testStartWithAppIdMethodWithLogStrategyImmedi
{
NSLog
(
@"%@ start"
,
self
.
name
);
analytics
=
[[
YH_Analytics
alloc
]
init
];
analytics
.
logStrategy
=
LogStrategyImmedi
;
OCMExpect
([
assemblyAssistantMock
uploadDiskData
]);
[
analytics
startWithAppId
:
@"appId"
];
XCTAssertThrows
([
assemblyAssistantMock
verify
],
@"StartWithAppId should not uploadDiskData when strategy is immediately."
)
;
NSLog
(
@"%@ end"
,
self
.
name
);
}
@end
...
...
YH_Analytics/YH_AnalyticsTests/YH_AnalyticsTests.m
View file @
289128b
...
...
@@ -81,18 +81,4 @@
NSLog
(
@"%@ end"
,
self
.
name
);
}
#pragma mark - 分支测试
-
(
void
)
testStartWithAppIdMethodWithLogStrategyAppLaunch
{
NSLog
(
@"%@ start"
,
self
.
name
);
NSLog
(
@"%@ end"
,
self
.
name
);
}
-
(
void
)
testStartWithAppIdMethodWithLogStrategyCustom
{
NSLog
(
@"%@ start"
,
self
.
name
);
NSLog
(
@"%@ end"
,
self
.
name
);
}
@end
...
...
Please
register
or
login
to post a comment