|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjunit.framework.Assert
junit.framework.TestCase
org.alfresco.repo.cache.lookup.EntityLookupCacheTest
public class EntityLookupCacheTest
A cache for two-way lookups of database entities. These are characterized by having a unique key (perhaps a database ID) and a separate unique key that identifies the object.
The keys must have good equals
and hashCode implementations and
must respect the case-sensitivity of the use-case.
Constructor Summary | |
---|---|
EntityLookupCacheTest()
|
Method Summary | |
---|---|
org.alfresco.util.Pair |
createValue(java.lang.Object value)
Simulate creation of a new database entry |
int |
deleteByKey(java.lang.Long key)
Delete an entity for the given key. |
int |
deleteByValue(java.lang.Object value)
Delete an entity for the given value. |
org.alfresco.util.Pair |
findByKey(java.lang.Long key)
Find an entity for a given key. |
org.alfresco.util.Pair |
findByValue(java.lang.Object value)
Find and entity using the given value key. |
java.lang.String |
getValueKey(java.lang.Object value)
Resolve the given value into a unique value key that can be used to find the entity's ID. |
protected void |
setUp()
|
void |
testClear()
|
void |
testDeleteByKey()
|
void |
testDeleteByValue()
|
void |
testLookupAgainstEmpty()
|
void |
testLookupAgainstExisting()
|
void |
testLookupsUsingIncorrectValue()
|
void |
testNullLookups()
|
void |
testRegions()
|
void |
testUpdate()
|
int |
updateValue(java.lang.Long key,
java.lang.Object value)
Update the entity identified by the given key. |
Methods inherited from class junit.framework.TestCase |
---|
countTestCases, createResult, getName, run, run, runBare, runTest, setName, tearDown, toString |
Methods inherited from class junit.framework.Assert |
---|
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public EntityLookupCacheTest()
Method Detail |
---|
protected void setUp() throws java.lang.Exception
setUp
in class junit.framework.TestCase
java.lang.Exception
public void testLookupsUsingIncorrectValue() throws java.lang.Exception
java.lang.Exception
public void testLookupAgainstEmpty() throws java.lang.Exception
java.lang.Exception
public void testLookupAgainstExisting() throws java.lang.Exception
java.lang.Exception
public void testRegions() throws java.lang.Exception
java.lang.Exception
public void testNullLookups() throws java.lang.Exception
java.lang.Exception
public void testUpdate() throws java.lang.Exception
java.lang.Exception
public void testDeleteByKey() throws java.lang.Exception
java.lang.Exception
public void testDeleteByValue() throws java.lang.Exception
java.lang.Exception
public void testClear() throws java.lang.Exception
java.lang.Exception
public java.lang.String getValueKey(java.lang.Object value)
EntityLookupCache.EntityLookupCallbackDAO
equals
and hashCode
.
Were no adequate key can be generated for the value, then null can be returned.
In this case, the findByValue
method might not even do a search
and just return null itself i.e. if it is difficult to look the value up in storage
then it is probably difficult to generate a cache key from it, too.. In this scenario, the
cache will be purely for key-based lookups
getValueKey
in interface EntityLookupCache.EntityLookupCallbackDAO
value
- the full value being keyed (never null)
public org.alfresco.util.Pair findByKey(java.lang.Long key)
EntityLookupCache.EntityLookupCallbackDAO
findByKey
in interface EntityLookupCache.EntityLookupCallbackDAO
key
- the key (ID) used to identify the entity (never null)
public org.alfresco.util.Pair findByValue(java.lang.Object value)
EntityLookupCache.EntityLookupCallbackDAO
equals
and hashCode
methods of the value object should respect case-sensitivity in the same way that this
lookup treats case-sensitivity i.e. if the equals
method is case-sensitive
then this method should look the entity up using a case-sensitive search.
Since this is a cache backed by some sort of database, null values are allowed by the
cache. The implementation of this method can throw an exception if null is not
appropriate for the use-case.
If the search is impossible or expensive, this method should just return null. This
would usually be the case if the getValueKey
method also returned
null i.e. if it is difficult to look the value up in storage then it is probably
difficult to generate a cache key from it, too.
findByValue
in interface EntityLookupCache.EntityLookupCallbackDAO
value
- the value (business object) used to identify the entity (null allowed).
public org.alfresco.util.Pair createValue(java.lang.Object value)
createValue
in interface EntityLookupCache.EntityLookupCallbackDAO
value
- the value (business object) used to identify the entity (null allowed).
public int updateValue(java.lang.Long key, java.lang.Object value)
EntityLookupCache.EntityLookupCallbackDAO
updateValue
in interface EntityLookupCache.EntityLookupCallbackDAO
key
- the existing key (ID) used to identify the entity (never null)value
- the new value
public int deleteByKey(java.lang.Long key)
EntityLookupCache.EntityLookupCallbackDAO
deleteByKey
in interface EntityLookupCache.EntityLookupCallbackDAO
key
- the key (ID) used to identify the entity (never null)
public int deleteByValue(java.lang.Object value)
EntityLookupCache.EntityLookupCallbackDAO
deleteByValue
in interface EntityLookupCache.EntityLookupCallbackDAO
value
- the value (business object) used to identify the enitity (null allowed)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |