Skip to content

Commit

Permalink
Add test framework (#79)
Browse files Browse the repository at this point in the history
  • Loading branch information
Idane committed Aug 21, 2021
1 parent e1f5f89 commit 07a2ee4
Show file tree
Hide file tree
Showing 17 changed files with 602 additions and 79 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
package com.antelopesystem.crudframework.crud.handler

import com.antelopesystem.crudframework.crud.cache.CrudCache
import com.antelopesystem.crudframework.crud.dataaccess.DataAccessManager
import com.antelopesystem.crudframework.crud.dataaccess.model.DataAccessorDTO
import com.antelopesystem.crudframework.crud.decorator.ObjectDecorator
import com.antelopesystem.crudframework.crud.hooks.interfaces.CRUDHooks
import com.antelopesystem.crudframework.crud.model.EntityMetadataDTO
import com.antelopesystem.crudframework.fieldmapper.transformer.base.FieldTransformer
import com.antelopesystem.crudframework.model.BaseCrudEntity
import com.antelopesystem.crudframework.modelfilter.DynamicModelFilter
import com.antelopesystem.crudframework.modelfilter.FilterField
import java.io.Serializable

abstract class AbstractCrudHelper : CrudHelper {
override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?, HooksType : CRUDHooks<*, out BaseCrudEntity<*>>?> getHooks(crudHooksClazz: Class<HooksType>?, entityClazz: Class<Entity>?): MutableList<HooksType> {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> isEntityDeleted(entity: Entity): Boolean {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> decorateFilter(filter: DynamicModelFilter?, entityClazz: Class<Entity>?, accessorDTO: DataAccessorDTO?, forUpdate: Boolean) {
throw UnsupportedOperationException()
}

override fun validateAndFillFilterFieldMetadata(filterFields: MutableList<FilterField>?, metadataDTO: EntityMetadataDTO?) {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntities(
filter: DynamicModelFilter?,
entityClazz: Class<Entity>?,
accessorDTO: DataAccessorDTO?,
persistCopy: Boolean?,
forUpdate: Boolean
): MutableList<Entity> {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntitiesCount(filter: DynamicModelFilter?, entityClazz: Class<Entity>?, accessorDTO: DataAccessorDTO?, forUpdate: Boolean): Long {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntityById(entityId: ID, entityClazz: Class<Entity>?, persistCopy: Boolean?, accessorDTO: DataAccessorDTO?, forUpdate: Boolean): Entity {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntityCountById(entityId: ID, entityClazz: Class<Entity>?, accessorDTO: DataAccessorDTO?, forUpdate: Boolean): Long {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getAccessorManager(accessorClazz: Class<*>?, entityClazz: Class<Entity>?): DataAccessManager<*, *, *> {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> checkEntityImmutability(clazz: Class<Entity>?) {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> checkEntityDeletability(clazz: Class<Entity>?) {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntityMetadata(entityClazz: Class<Entity>?): EntityMetadataDTO {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> evictEntityFromCache(entity: Entity) {
throw UnsupportedOperationException()
}

override fun <Entity : Any?, E : Any?> getObjectDecorator(fromClass: Class<Entity>?, toClass: Class<E>?): ObjectDecorator<Entity, E> {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getEntityCache(clazz: Class<Entity>?): CrudCache {
throw UnsupportedOperationException()
}

override fun validate(target: Any?) {
throw UnsupportedOperationException()
}

override fun <From : Any?, To : Any?> fill(fromObject: From, toClazz: Class<To>): To {
throw UnsupportedOperationException()
}

override fun <From : Any?, To : Any?> fill(fromObject: From, toObject: To) {
throw UnsupportedOperationException()
}

override fun <From : Any?, To : Any?> fillMany(fromObjects: MutableList<From>, toClazz: Class<To>): List<To> {
throw UnsupportedOperationException()
}

override fun <Entity : Any?> setTotalToPagingCache(entityClazz: Class<Entity>?, filter: DynamicModelFilter?, total: Long) {
throw UnsupportedOperationException()
}

override fun <Entity : Any?> getTotalFromPagingCache(entityClazz: Class<Entity>?, filter: DynamicModelFilter?): Long {
throw UnsupportedOperationException()
}

override fun <ID : Serializable?, Entity : BaseCrudEntity<ID>?> getCrudDaoForEntity(entityClazz: Class<Entity>?): CrudDao {
throw UnsupportedOperationException()
}

override fun registerDefaultTransformer(transformer: FieldTransformer<*, *>?) {
throw UnsupportedOperationException()
}

override fun registerDefaultTransformer(transformer: FieldTransformer<*, *>?, fromType: Class<*>?, toType: Class<*>?) {
throw UnsupportedOperationException()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

public interface CrudDeleteHandler {

<ID extends Serializable, Entity extends BaseCrudEntity<ID>> Object deleteInternal(ID id, Class<Entity> clazz,
<ID extends Serializable, Entity extends BaseCrudEntity<ID>> void deleteInternal(ID id, Class<Entity> clazz,
HooksDTO<CRUDPreDeleteHook<ID, Entity>, CRUDOnDeleteHook<ID, Entity>, CRUDPostDeleteHook<ID, Entity>> hooks,
DataAccessorDTO accessorDTO);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class CrudDeleteHandlerImpl implements CrudDeleteHandler {
private CrudDeleteHandler crudDeleteHandlerProxy;

@Override
public <ID extends Serializable, Entity extends BaseCrudEntity<ID>> Object deleteInternal(ID id, Class<Entity> clazz,
public <ID extends Serializable, Entity extends BaseCrudEntity<ID>> void deleteInternal(ID id, Class<Entity> clazz,
HooksDTO<CRUDPreDeleteHook<ID, Entity>, CRUDOnDeleteHook<ID, Entity>, CRUDPostDeleteHook<ID, Entity>> hooks,
DataAccessorDTO accessorDTO) {

Expand Down Expand Up @@ -63,8 +63,6 @@ public <ID extends Serializable, Entity extends BaseCrudEntity<ID>> Object delet
for(CRUDPostDeleteHook<ID, Entity> postHook : hooks.getPostHooks()) {
postHook.run(entity);
}

return null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,27 +48,25 @@ public interface CrudHandler {
* Index request, returns list of {@code T} entity according to {@code filter}
*
* @param <Entity> {@link BaseCrudEntity} type
* @param <Filter> {@link DynamicModelFilter} type
* @param filter the filter
* @param clazz the entity class
* @return {@link ReadCRUDRequestBuilder} use {@link CRUDRequestBuilder#execute()} to run the request
*/
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter> ReadCRUDRequestBuilder<CRUDPreIndexHook<ID, Entity, Filter>, CRUDOnIndexHook<ID, Entity, Filter>, CRUDPostIndexHook<ID, Entity, Filter>, PagingDTO<Entity>> index(
Filter filter, Class<Entity> clazz);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>> ReadCRUDRequestBuilder<CRUDPreIndexHook<ID, Entity>, CRUDOnIndexHook<ID, Entity>, CRUDPostIndexHook<ID, Entity>, PagingDTO<Entity>> index(
DynamicModelFilter filter, Class<Entity> clazz);

/**
* Index request, returns list of {@code T} entity according to {@code filter}
*
* @param <Entity> {@link BaseCrudEntity} type
* @param <Filter> {@link DynamicModelFilter} type
* @param <RO> return object type
* @param filter the filter
* @param clazz the entity class
* @param toClazz the return object class
* @return {@link ReadCRUDRequestBuilder} use {@link CRUDRequestBuilder#execute()} to run the request
*/
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter, RO> ReadCRUDRequestBuilder<CRUDPreIndexHook<ID, Entity, Filter>, CRUDOnIndexHook<ID, Entity, Filter>, CRUDPostIndexHook<ID, Entity, Filter>, PagingDTO<RO>> index(
Filter filter, Class<Entity> clazz, Class<RO> toClazz);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, RO> ReadCRUDRequestBuilder<CRUDPreIndexHook<ID, Entity>, CRUDOnIndexHook<ID, Entity>, CRUDPostIndexHook<ID, Entity>, PagingDTO<RO>> index(
DynamicModelFilter filter, Class<Entity> clazz, Class<RO> toClazz);

/**
* Delete request, deletes according to {@link Deleteable} and {@link DeleteColumn} if {@link Deleteable#softDelete()} is used. Throws runtime exception if given entity is not deletable
Expand Down Expand Up @@ -185,17 +183,17 @@ <ID extends Serializable, Entity extends BaseCrudEntity<ID>> MassUpdateCRUDReque
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, RO> MassUpdateCRUDRequestBuilder<CRUDPreUpdateHook<ID, Entity>, CRUDOnUpdateHook<ID, Entity>, CRUDPostUpdateHook<ID, Entity>, List<RO>> updateByFilter(
DynamicModelFilter filter, Class<Entity> entityClazz, Class<RO> toClazz);

<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity, Filter>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, Entity> showBy(
Filter filter, Class<Entity> clazz);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, Entity> showBy(
DynamicModelFilter filter, Class<Entity> clazz);

<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity, Filter>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, Entity> showBy(
Filter filter, Class<Entity> clazz, ShowByMode mode);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, Entity> showBy(
DynamicModelFilter filter, Class<Entity> clazz, ShowByMode mode);

<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter, RO> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity, Filter>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, RO> showBy(
Filter filter, Class<Entity> clazz, Class<RO> toClazz);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, RO> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, RO> showBy(
DynamicModelFilter filter, Class<Entity> clazz, Class<RO> toClazz);

<ID extends Serializable, Entity extends BaseCrudEntity<ID>, Filter extends DynamicModelFilter, RO> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity, Filter>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, RO> showBy(
Filter filter, Class<Entity> clazz, Class<RO> toClazz, ShowByMode mode);
<ID extends Serializable, Entity extends BaseCrudEntity<ID>, RO> ReadCRUDRequestBuilder<CRUDPreShowByHook<ID, Entity>, CRUDOnShowByHook<ID, Entity>, CRUDPostShowByHook<ID, Entity>, RO> showBy(
DynamicModelFilter filter, Class<Entity> clazz, Class<RO> toClazz, ShowByMode mode);

/**
* Show request, returns a single {@code T} entity according with the given {@code id}
Expand Down

0 comments on commit 07a2ee4

Please sign in to comment.