[ResearchKit] Fix unit tests

- Fixes tests to reflect the new empty answer for a Choice Answer Format being ORKNullAnswerValue() instead of an empty array (introduced on the Review Step feature).
- Fixes test for task step identifier uniqueness validation (it now takes place on task init).
This commit is contained in:
Ricardo Sánchez-Sáez
2016-01-27 13:21:05 +00:00
parent 865275d3aa
commit a96c8b9540
3 changed files with 42 additions and 24 deletions
@@ -192,11 +192,11 @@
id answer = [formatHelper answerForSelectedIndexes:@[@(0)]];
XCTAssert([answer isKindOfClass:[NSArray class]] && ((NSArray *)answer).count == 0, @"%@", answer);
XCTAssert(answer == ORKNullAnswerValue(), @"%@", answer);
answer = [formatHelper answerForSelectedIndex:0];
XCTAssert([answer isKindOfClass:[NSArray class]] && ((NSArray *)answer).count == 0, @"%@", answer);
XCTAssert(answer == ORKNullAnswerValue(), @"%@", answer);
[textChoices enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
+2 -3
View File
@@ -361,9 +361,8 @@ typedef NS_OPTIONS(NSUInteger, TestsTaskResultOptions) {
ORKStep *step = [[ORKInstructionStep alloc] initWithIdentifier:BlankStepIdentifier];
[steps addObject:step];
ORKOrderedTask *orderedTask = [[ORKOrderedTask alloc] initWithIdentifier:OrderedTaskIdentifier
steps:steps];
XCTAssertThrows([orderedTask validateParameters]);
XCTAssertThrows([[ORKOrderedTask alloc] initWithIdentifier:OrderedTaskIdentifier
steps:steps]);
}
#define getIndividualNavigableOrderedTaskSteps() \
+38 -19
View File
@@ -272,29 +272,47 @@
[group didSelectCellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
id answer = group.answer;
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, group.size - index -1);
if (index < group.size - 1) {
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, group.size - index -1);
} else {
// Answer becomes NSNull when all cells are deselected
XCTAssert(answer == ORKNullAnswerValue());
}
ORKChoiceViewCell *cell = [group cellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] withReuseIdentifier:@"abc"];
XCTAssertEqual( cell.selectedItem, NO);
}
id answer = group.answer;
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, 0);
XCTAssert(group.answer == ORKNullAnswerValue());
// Select all cells again
for ( index = 0 ; index < group.size; index++) {
[group didSelectCellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
}
NSArray *answerArray = group.answer;
XCTAssertEqual(answerArray.count, group.size);
// Test set nil/null answer
[group setAnswer:nil];
XCTAssertEqual(answerArray.count, 0);
XCTAssertNil(group.answer);
for ( index = 0 ; index < group.size; index++) {
ORKChoiceViewCell *cell = [group cellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] withReuseIdentifier:@"abc"];
XCTAssert( cell.selectedItem == NO);
}
[group setAnswer:ORKNullAnswerValue()];
XCTAssertEqual(answerArray.count, 0);
// Select all cells again
for ( index = 0 ; index < group.size; index++) {
[group didSelectCellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
}
answerArray = group.answer;
XCTAssertEqual(answerArray.count, group.size);
[group setAnswer:ORKNullAnswerValue()];
XCTAssert(group.answer == ORKNullAnswerValue());
for ( index = 0 ; index < group.size; index++) {
ORKChoiceViewCell *cell = [group cellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] withReuseIdentifier:@"abc"];
XCTAssertEqual(cell.selectedItem, NO);
@@ -423,9 +441,7 @@
// Test cell deselection. First deselect the exclusive, and confirm no choices are selected
[group didSelectCellAtIndexPath:[NSIndexPath indexPathForRow:exclusiveIndex inSection:0]];
exclusiveAnswer = group.answer;
XCTAssert([exclusiveAnswer isKindOfClass:[NSArray class]]);
exclusiveAnswerArray = exclusiveAnswer;
XCTAssertEqual(exclusiveAnswerArray.count, 0);
XCTAssert(exclusiveAnswer == ORKNullAnswerValue());
exclusiveCell = [group cellAtIndexPath:[NSIndexPath indexPathForRow:exclusiveIndex inSection:0] withReuseIdentifier:@"abc"];
XCTAssertEqual(exclusiveCell.selectedItem, NO);
@@ -495,18 +511,21 @@
NSUInteger index = ((NSNumber *)nonExclusiveIndexes[nonExclusiveIndexI]).unsignedIntegerValue;
[group didSelectCellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
id answer = group.answer;
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, nonExclusiveIndexes.count - nonExclusiveIndexI - 1);
if (nonExclusiveIndexI < nonExclusiveIndexes.count - 1) {
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, nonExclusiveIndexes.count - nonExclusiveIndexI - 1);
} else {
// Answer becomes NSNull when there are no selected cells
XCTAssert(answer == ORKNullAnswerValue());
}
ORKChoiceViewCell *cell = [group cellAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] withReuseIdentifier:@"abc"];
XCTAssertEqual( cell.selectedItem, NO);
}
id answer = group.answer;
XCTAssert([answer isKindOfClass:[NSArray class]]);
NSArray *answerArray = answer;
XCTAssertEqual(answerArray.count, 0);
XCTAssert(answer == ORKNullAnswerValue());
}
// Test set nil/null answer