Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions QonversionTests/QonversionMapperTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
#import "QONEntitlement.h"
#import "QONLaunchResult.h"
#import "QONProduct.h"
#import "QONRemoteConfig.h"
#import "QONRemoteConfigMapper.h"
#import "QONRemoteConfigurationSource.h"

@interface QNMapperTests : XCTestCase
@property (nonatomic, strong) NSDictionary *userInitSuccess;
Expand All @@ -17,6 +20,30 @@ @interface QNMapperTests : XCTestCase

@implementation QNMapperTests

- (void)testRemoteConfigMapperPreservesFrozenAssignmentProvenance {
NSDictionary *data = @{
@"payload": @{},
@"source": @{
@"uid": @"rc-frozen",
@"name": @"Frozen config",
@"type": @"remote_configuration",
@"assignment_type": @"frozen",
@"context_key": @""
}
};

QONRemoteConfig *config = [[[QONRemoteConfigMapper alloc] init] mapRemoteConfig:data];

XCTAssertNotNil(config.source);
XCTAssertEqual(config.source.assignmentType, QONRemoteConfigurationAssignmentTypeFrozen);
}

- (void)testRemoteConfigAssignmentTypeKeepsExistingNumericValues {
XCTAssertEqual(QONRemoteConfigurationAssignmentTypeUnknown, -1);
XCTAssertEqual(QONRemoteConfigurationAssignmentTypeAuto, 0);
XCTAssertEqual(QONRemoteConfigurationAssignmentTypeManual, 1);
}

- (void)setUp {
[super setUp];

Expand Down
3 changes: 2 additions & 1 deletion Sources/Qonversion/Public/QONRemoteConfigurationSource.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, QONRemoteConfigurationAssignmentType) {
QONRemoteConfigurationAssignmentTypeUnknown = -1,
QONRemoteConfigurationAssignmentTypeAuto = 0,
QONRemoteConfigurationAssignmentTypeManual = 1
QONRemoteConfigurationAssignmentTypeManual = 1,
QONRemoteConfigurationAssignmentTypeFrozen = 2
} NS_SWIFT_NAME(Qonversion.RemoteConfigurationAssignmentType);

typedef NS_ENUM(NSInteger, QONRemoteConfigurationSourceType) {
Expand Down
3 changes: 3 additions & 0 deletions Sources/Qonversion/Public/QONRemoteConfigurationSource.m
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ - (NSString *)prettyAssignmentType {

case QONRemoteConfigurationAssignmentTypeManual:
result = @"manual"; break;

case QONRemoteConfigurationAssignmentTypeFrozen:
result = @"frozen"; break;

default:
result = @"unknown"; break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

NSString *const kRemoteConfigurationAssignmentTypeAuto = @"auto";
NSString *const kRemoteConfigurationAssignmentTypeManual = @"manual";
NSString *const kRemoteConfigurationAssignmentTypeFrozen = @"frozen";

NSString *const kRemoteConfigurationSourceTypeControlGroup = @"experiment_control_group";
NSString *const kRemoteConfigurationSourceTypeTreatmentGroup = @"experiment_treatment_group";
Expand Down Expand Up @@ -46,7 +47,8 @@ - (instancetype)init {

_remoteConfigurationAssignmentTypes = @{
kRemoteConfigurationAssignmentTypeAuto: @(QONRemoteConfigurationAssignmentTypeAuto),
kRemoteConfigurationAssignmentTypeManual: @(QONRemoteConfigurationAssignmentTypeManual)
kRemoteConfigurationAssignmentTypeManual: @(QONRemoteConfigurationAssignmentTypeManual),
kRemoteConfigurationAssignmentTypeFrozen: @(QONRemoteConfigurationAssignmentTypeFrozen)
};

_remoteConfigurationSourceTypes = @{
Expand Down
Loading