1 package eu
.etaxonomy
.taxeditor
.session
;
3 import java
.util
.HashSet
;
8 import org
.apache
.log4j
.Logger
;
9 import org
.junit
.Assert
;
11 import eu
.etaxonomy
.cdm
.api
.application
.CdmChangeEvent
;
12 import eu
.etaxonomy
.cdm
.api
.application
.ICdmChangeListener
;
13 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
15 public class MockSessionOwner
<T
extends CdmBase
> implements ICdmEntitySessionEnabled
, ICdmChangeListener
{
17 private static final Logger logger
= Logger
.getLogger(MockSessionOwner
.class);
19 private final List
<T
> rootEntities
;
20 private Set
<T
> expectedUpdatedObjects
;
21 private Set
<?
extends CdmBase
> eventUpdatedObjects
;
23 private ICdmEntitySession session
;
25 public MockSessionOwner() {
26 this.rootEntities
= null;
27 this.expectedUpdatedObjects
= new HashSet
<T
>();
30 // public MockSessionOwner(Set<T> updatedObjects) {
31 // this.rootEntities = null;
32 // this.updatedObjects = updatedObjects;
35 // public MockSessionOwner(List<T> rootEntities) {
36 // this.rootEntities = rootEntities;
39 public void setExpectedUpdatedObjects(Set
<T
> updatedObjects
) {
40 this.expectedUpdatedObjects
= updatedObjects
;
43 public void addExpectedUpdatedObject(T updatedObject
) {
44 this.expectedUpdatedObjects
.add(updatedObject
);
48 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
51 public ICdmEntitySession
getCdmEntitySession() {
55 public void setCdmEntitySession(ICdmEntitySession session
) {
56 this.session
= session
;;
60 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
63 public List
<T
> getRootEntities() {
67 public void dispose() {
70 logger
.info("disposed of session from session owner : " + this);
74 public Set
<?
extends CdmBase
> getEventUpdatedObjects() {
75 return eventUpdatedObjects
;
78 * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
81 public void onChange(CdmChangeEvent event
) {
82 eventUpdatedObjects
= event
.getChangedObjects();
83 if(expectedUpdatedObjects
!= null && !expectedUpdatedObjects
.isEmpty()) {
84 for(CdmBase cb
: expectedUpdatedObjects
) {
85 Assert
.assertTrue(event
.getChangedObjects().contains(cb
));
92 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
95 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
96 // TODO Auto-generated method stub