Skip to content

Commit a7bd089

Browse files
authored
JDO-844: Add SampleReadQuery test methods with variables of type String (#97)
* JDO-844: Add SampleReadQuery test methods with variables of type String * JDO-844: added code review comments from Tilmann
1 parent ad37e97 commit a7bd089

File tree

41 files changed

+890
-28
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+890
-28
lines changed

tck/src/main/java/org/apache/jdo/tck/api/fetchgroup/FetchGroupTest.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ public class FetchGroupTest extends JDO_Test {
9393
"middlename",
9494
"birthdate",
9595
"address",
96-
"phoneNumbers"
96+
"phoneNumbers",
97+
"languages"
9798
};
9899
/** Address address is of type Address and is a relationship */
99100
protected final String[] relationshipMembers =
@@ -112,9 +113,11 @@ public class FetchGroupTest extends JDO_Test {
112113
"hradvisees",
113114
"address"
114115
};
115-
/** Map phoneNumbers is not a relationship but is multivalued */
116+
/** Map phoneNumbers and set languages are not relationships but are multivalued */
116117
protected final String[] multivaluedMembers =
117-
new String[] {"reviewedProjects", "projects", "team", "hradvisees", "phoneNumbers"};
118+
new String[] {
119+
"reviewedProjects", "projects", "team", "hradvisees", "phoneNumbers", "languages"
120+
};
118121

119122
protected final String[] allButMultivaluedMembers =
120123
new String[] {
@@ -336,16 +339,21 @@ public void testRemoveMembers() {
336339
Set<String> expectedSet = new HashSet<>();
337340
expectedSet.addAll(Arrays.asList(basicMembers));
338341
expectedSet.add("phoneNumbers");
342+
expectedSet.add("languages");
339343
Assertions.assertEquals(
340344
expectedSet,
341345
members,
342-
"FetchGroup should contain basic members " + "plus address plus phoneNumbers.\n");
346+
"FetchGroup should contain basic members "
347+
+ "plus address plus phoneNumbers and languages.\n");
343348
fg.removeMembers(basicMembers);
344349
members = fg.getMembers();
345350
expectedSet = new HashSet<>();
346351
expectedSet.add("phoneNumbers");
352+
expectedSet.add("languages");
347353
Assertions.assertEquals(
348-
expectedSet, members, "FetchGroup should contain address plus phoneNumbers.\n");
354+
expectedSet,
355+
members,
356+
"FetchGroup should contain address plus phoneNumbers and languages.\n");
349357
}
350358

351359
@SuppressWarnings("unchecked")

tck/src/main/java/org/apache/jdo/tck/lifecycle/PMsCanSharePCClassesButNotPCInstances.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ protected void insertObjects(boolean sharedPC) {
110110

111111
while (!attemptsComplete()) {
112112
try {
113-
Thread.sleep(100);
113+
Thread.sleep(200);
114114
} catch (InterruptedException ex) {
115115
logger.debug("interrupted while waiting for threads to insert");
116116
}

tck/src/main/java/org/apache/jdo/tck/pc/company/IPerson.java

+5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Date;
2121
import java.util.Map;
22+
import java.util.Set;
2223

2324
/**
2425
* This interface represents the persistent state of Person. Javadoc was deliberately omitted
@@ -40,6 +41,8 @@ public interface IPerson {
4041

4142
Map<String, String> getPhoneNumbers();
4243

44+
Set<String> getLanguages();
45+
4346
void setPersonid(long personid);
4447

4548
void setLastname(String lastname);
@@ -53,4 +56,6 @@ public interface IPerson {
5356
void setBirthdate(Date birthdate);
5457

5558
void setPhoneNumbers(Map<String, String> phoneNumbers);
59+
60+
void setLanguages(Set<String> languages);
5661
}

tck/src/main/java/org/apache/jdo/tck/pc/company/PIPerson.java

+5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Date;
2121
import java.util.Map;
22+
import java.util.Set;
2223

2324
/**
2425
* This interface represents the persistent state of Person. Javadoc was deliberately omitted
@@ -40,6 +41,8 @@ public interface PIPerson extends IPerson {
4041

4142
Map<String, String> getPhoneNumbers();
4243

44+
Set<String> getLanguages();
45+
4346
void setPersonid(long personid);
4447

4548
void setLastname(String lastname);
@@ -53,4 +56,6 @@ public interface PIPerson extends IPerson {
5356
void setBirthdate(Date birthdate);
5457

5558
void setPhoneNumbers(Map<String, String> phoneNumbers);
59+
60+
void setLanguages(Set<String> languages);
5661
}

tck/src/main/java/org/apache/jdo/tck/pc/company/Person.java

+25-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import java.util.Comparator;
2323
import java.util.Date;
2424
import java.util.HashMap;
25+
import java.util.HashSet;
2526
import java.util.Map;
27+
import java.util.Set;
2628
import javax.jdo.annotations.PersistenceCapable;
2729
import org.apache.jdo.tck.util.DeepEquality;
2830
import org.apache.jdo.tck.util.EqualityHelper;
@@ -46,6 +48,8 @@ public class Person
4648
// to phone numbers specified as String
4749
private Map<String, String> phoneNumbers = new HashMap<>();
4850

51+
private Set<String> languages = new HashSet<>();
52+
4953
/** This is the JDO-required no-args constructor. */
5054
protected Person() {}
5155

@@ -261,6 +265,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
261265
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
262266
}
263267

268+
/**
269+
* Get the set of languages as an unmodifiable set.
270+
*
271+
* @return The set of languages, as an unmodifiable set.
272+
*/
273+
public Set<String> getLanguages() {
274+
return Collections.unmodifiableSet(languages);
275+
}
276+
277+
/**
278+
* Set the languages set to be in this person.
279+
*
280+
* @param languages The set of languages for this person.
281+
*/
282+
public void setLanguages(Set<String> languages) {
283+
this.languages = new HashSet(languages);
284+
}
285+
264286
/**
265287
* Returns a String representation of a <code>Person</code> object.
266288
*
@@ -282,6 +304,7 @@ protected String getFieldRepr() {
282304
rc.append(", ").append(firstname);
283305
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
284306
rc.append(", phone ").append(phoneNumbers);
307+
rc.append(", languages ").append(languages);
285308
return rc.toString();
286309
}
287310

@@ -304,7 +327,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
304327
& helper.equals(middlename, otherPerson.getMiddlename(), where + ".middlename")
305328
& helper.equals(birthdate, otherPerson.getBirthdate(), where + ".birthdate")
306329
& helper.deepEquals(address, otherPerson.getAddress(), where + ".address")
307-
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers");
330+
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers")
331+
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
308332
}
309333

310334
/**

tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCAppPerson.java

+26
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
import java.util.Comparator;
2323
import java.util.Date;
2424
import java.util.HashMap;
25+
import java.util.HashSet;
2526
import java.util.Map;
27+
import java.util.Set;
2628
import javax.jdo.annotations.Column;
29+
import javax.jdo.annotations.Element;
2730
import javax.jdo.annotations.Embedded;
2831
import javax.jdo.annotations.Inheritance;
2932
import javax.jdo.annotations.InheritanceStrategy;
@@ -86,6 +89,11 @@ public class FCAppPerson
8689
@Value(types = java.lang.String.class, column = "PHONENO")
8790
private Map<String, String> phoneNumbers = new HashMap<>();
8891

92+
@Persistent(table = "employee_languages")
93+
@Join(column = "EMPID")
94+
@Element(types = java.lang.String.class, column = "LANGUAGE")
95+
private Set<String> languages = new HashSet<>();
96+
8997
/** This is the JDO-required no-args constructor. */
9098
protected FCAppPerson() {}
9199

@@ -301,6 +309,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
301309
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
302310
}
303311

312+
/**
313+
* Get the map of languages as an unmodifiable Set.
314+
*
315+
* @return The set of languages, as an unmodifiable set.
316+
*/
317+
public Set<String> getLanguages() {
318+
return Collections.unmodifiableSet(languages);
319+
}
320+
321+
/**
322+
* Set the languages set to be in this person.
323+
*
324+
* @param languages The map of phoneNumbers for this person.
325+
*/
326+
public void setLanguages(Set<String> languages) {
327+
this.languages = new HashSet(languages);
328+
}
329+
304330
/**
305331
* Returns a String representation of a <code>FCAppPerson</code> object.
306332
*

tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedFC/FCDSPerson.java

+29-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
import java.util.Comparator;
2323
import java.util.Date;
2424
import java.util.HashMap;
25+
import java.util.HashSet;
2526
import java.util.Map;
27+
import java.util.Set;
2628
import javax.jdo.annotations.Column;
29+
import javax.jdo.annotations.Element;
2730
import javax.jdo.annotations.Embedded;
2831
import javax.jdo.annotations.Join;
2932
import javax.jdo.annotations.Key;
@@ -82,6 +85,11 @@ public class FCDSPerson
8285
@Value(types = java.lang.String.class, column = "PHONENO")
8386
private Map<String, String> phoneNumbers = new HashMap<>();
8487

88+
@Persistent(table = "employee_languages")
89+
@Join(column = "EMPID")
90+
@Element(types = java.lang.String.class, column = "LANGUAGE")
91+
private Set<String> languages = new HashSet<>();
92+
8593
/** This is the JDO-required no-args constructor. */
8694
protected FCDSPerson() {}
8795

@@ -297,6 +305,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
297305
this.phoneNumbers = (phoneNumbers != null) ? new HashMap<>(phoneNumbers) : null;
298306
}
299307

308+
/**
309+
* Get the map of languages as an unmodifiable Set.
310+
*
311+
* @return The set of languages, as an unmodifiable set.
312+
*/
313+
public Set<String> getLanguages() {
314+
return Collections.unmodifiableSet(languages);
315+
}
316+
317+
/**
318+
* Set the languages set to be in this person.
319+
*
320+
* @param languages The map of phoneNumbers for this person.
321+
*/
322+
public void setLanguages(Set<String> languages) {
323+
this.languages = new HashSet(languages);
324+
}
325+
300326
/**
301327
* Returns a String representation of a <code>FCDSPerson</code> object.
302328
*
@@ -318,6 +344,7 @@ protected String getFieldRepr() {
318344
rc.append(", ").append(firstname);
319345
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
320346
rc.append(", phone ").append(phoneNumbers);
347+
rc.append(", languages ").append(languages);
321348
return rc.toString();
322349
}
323350

@@ -340,7 +367,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
340367
& helper.equals(middlename, otherPerson.getMiddlename(), where + ".middlename")
341368
& helper.equals(birthdate, otherPerson.getBirthdate(), where + ".birthdate")
342369
& helper.deepEquals(address, otherPerson.getAddress(), where + ".address")
343-
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers");
370+
& helper.deepEquals(phoneNumbers, otherPerson.getPhoneNumbers(), where + ".phoneNumbers")
371+
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
344372
}
345373

346374
/**

tck/src/main/java/org/apache/jdo/tck/pc/companyAnnotatedJPA/JPAAppPerson.java

+31-1
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,30 @@
1818
package org.apache.jdo.tck.pc.companyAnnotatedJPA;
1919

2020
import java.io.Serializable;
21+
import java.util.Collections;
2122
import java.util.Comparator;
2223
import java.util.Date;
2324
import java.util.HashMap;
25+
import java.util.HashSet;
2426
import java.util.Map;
27+
import java.util.Set;
2528
import javax.persistence.AttributeOverride;
2629
import javax.persistence.AttributeOverrides;
2730
import javax.persistence.Basic;
2831
import javax.persistence.CascadeType;
32+
import javax.persistence.CollectionTable;
2933
import javax.persistence.Column;
3034
import javax.persistence.DiscriminatorColumn;
3135
import javax.persistence.DiscriminatorType;
36+
import javax.persistence.ElementCollection;
3237
import javax.persistence.Embedded;
3338
import javax.persistence.Entity;
3439
import javax.persistence.FetchType;
3540
import javax.persistence.Id;
3641
import javax.persistence.IdClass;
3742
import javax.persistence.Inheritance;
3843
import javax.persistence.InheritanceType;
44+
import javax.persistence.JoinColumn;
3945
import javax.persistence.MapKey;
4046
import javax.persistence.OneToMany;
4147
import javax.persistence.Table;
@@ -90,6 +96,10 @@ public class JPAAppPerson
9096
@MapKey(name = "type")
9197
private Map<String, JPAAppPhoneNumber> phoneNumbers = new HashMap<>();
9298

99+
@ElementCollection
100+
@CollectionTable(name = "employee_languages", joinColumns = @JoinColumn(name = "EMPID"))
101+
private Set<String> languages = new HashSet<>();
102+
93103
/** This is the JDO-required no-args constructor. */
94104
protected JPAAppPerson() {}
95105

@@ -305,6 +315,24 @@ public void setPhoneNumbers(Map<String, String> phoneNumbers) {
305315
this.phoneNumbers = (phoneNumbers != null) ? convertString2Phone(phoneNumbers) : null;
306316
}
307317

318+
/**
319+
* Get the map of languages as an unmodifiable Set.
320+
*
321+
* @return The set of languages, as an unmodifiable set.
322+
*/
323+
public Set<String> getLanguages() {
324+
return Collections.unmodifiableSet(languages);
325+
}
326+
327+
/**
328+
* Set the languages set to be in this person.
329+
*
330+
* @param languages The map of phoneNumbers for this person.
331+
*/
332+
public void setLanguages(Set<String> languages) {
333+
this.languages = new HashSet(languages);
334+
}
335+
308336
/**
309337
* Converts HashMap of String, String to HashMap of String, JPAAppPhoneNmber
310338
*
@@ -360,6 +388,7 @@ protected String getFieldRepr() {
360388
rc.append(", ").append(firstname);
361389
rc.append(", born ").append(JDOCustomDateEditor.getDateRepr(birthdate));
362390
rc.append(", phone ").append(convertPhone2String(phoneNumbers));
391+
rc.append(", languages ").append(languages);
363392
return rc.toString();
364393
}
365394

@@ -385,7 +414,8 @@ public boolean deepCompareFields(Object other, EqualityHelper helper) {
385414
& helper.deepEquals(
386415
convertPhone2String(phoneNumbers),
387416
otherPerson.getPhoneNumbers(),
388-
where + ".phoneNumbers");
417+
where + ".phoneNumbers")
418+
& helper.deepEquals(languages, otherPerson.getLanguages(), where + ".languages");
389419
}
390420

391421
/**

0 commit comments

Comments
 (0)