Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
• moves ERQTest into correct package
• adds test for ERXQ.one()
• adds test for ERXQ.first()
  • Loading branch information
darkv committed Jun 24, 2015
1 parent 8163d1d commit f1cce97
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Tests/ERXTest/Sources/er/erxtest/ERXTestSuite.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static Test suite() {
suite.addTestSuite(er.extensions.eof.ERXKeyTest.class);

suite.addTestSuite(er.extensions.eof.qualifiers.ERXToManyQualifierTest.class);
suite.addTestSuite(er.extensions.eof.qualifiers.ERXQTest.class);
suite.addTestSuite(er.extensions.eof.ERXQTest.class);

suite.addTestSuite(er.extensions.foundation.ERXArrayUtilitiesTest.class);
suite.addTestSuite(er.extensions.foundation.ERXMutableArrayTest.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package er.extensions.eof.qualifiers;
package er.extensions.eof;

import junit.framework.TestCase;

import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;
import com.webobjects.foundation.NSMutableArray;
import com.webobjects.foundation.NSMutableDictionary;
import com.webobjects.foundation.NSPropertyListSerialization;

import com.webobjects.eocontrol.EOAndQualifier;
import com.webobjects.eocontrol.EOClassDescription;
import com.webobjects.eocontrol.EOGenericRecord;
import com.webobjects.eocontrol.EOKeyValueQualifier;
import com.webobjects.eocontrol.EOQualifier;

Expand Down Expand Up @@ -96,4 +98,79 @@ public void testMatchingValues() {
assertNotNull(qualifier);
assertTrue(qualifier instanceof EOAndQualifier && ((EOAndQualifier)qualifier).qualifiers().size() == 3);
}

public void testOne() {
NSArray<EOGenericRecord> persons = personArray();
EOGenericRecord firstElement = persons.get(0);

EOGenericRecord result = ERXQ.one(persons, ERXQ.is("firstName", "Bill"));
assertNotNull(result);
assertEquals(firstElement, result);

result = ERXQ.one(persons, ERXQ.is("firstName", "Billl"));
assertNull(result);

result = ERXQ.one(null, ERXQ.is("firstName", "Bill"));
assertNull(result);

result = ERXQ.one(NSArray.<EOGenericRecord>emptyArray(), ERXQ.is("firstName", "Bill"));
assertNull(result);

try {
result = ERXQ.one(persons, null);
fail("missing IllegalStateException");
} catch (IllegalStateException e) {
// got expected exception
}

try {
result = ERXQ.one(persons, ERXQ.is("lastName", "Smith"));
fail("missing IllegalStateException");
} catch (IllegalStateException e) {
// got expected exception
}
}

public void testFirst() {
NSArray<EOGenericRecord> persons = personArray();
EOGenericRecord firstElement = persons.get(0);

EOGenericRecord result = ERXQ.first(persons, ERXQ.is("firstName", "Bill"));
assertNotNull(result);
assertEquals(firstElement, result);

result = ERXQ.first(persons, ERXQ.is("firstName", "Billl"));
assertNull(result);

result = ERXQ.first(null, ERXQ.is("firstName", "Bill"));
assertNull(result);

result = ERXQ.first(NSArray.<EOGenericRecord>emptyArray(), ERXQ.is("firstName", "Bill"));
assertNull(result);

result = ERXQ.first(persons, null);
assertNotNull(result);
assertEquals(firstElement, result);

result = ERXQ.first(persons, ERXQ.is("lastName", "Smith"));
assertNotNull(result);
assertEquals(firstElement, result);
}

private NSArray<EOGenericRecord> personArray() {
NSMutableArray<EOGenericRecord> persons = new NSMutableArray<EOGenericRecord>();
persons.add(createPerson("Bill", "Smith"));
persons.add(createPerson("Bob", "Anything"));
persons.add(createPerson("John", "Smith"));
persons.add(createPerson("Peter", "Pan"));
return persons.immutableClone();
}

private EOGenericRecord createPerson(String firstName, String lastName) {
EOClassDescription classDescription = EOClassDescription.classDescriptionForEntityName("Person");
EOGenericRecord person = new EOGenericRecord(classDescription);
person.takeValueForKey(firstName, "firstName");
person.takeValueForKey(lastName, "lastName");
return person;
}
}

0 comments on commit f1cce97

Please sign in to comment.