package de.zib.gndms.logic.action; /* * Copyright 2008-2011 Zuse Institute Berlin (ZIB) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import de.zib.gndms.model.dspace.Subspace; import de.zib.gndms.model.dspace.SliceKind; import de.zib.gndms.common.model.common.AccessMask; import de.zib.gndms.logic.model.dspace.CreateSliceKindAction; import static org.testng.AssertJUnit.*; import javax.persistence.EntityManager; import javax.persistence.Query; import java.util.Set; import java.util.List; /** * @author try ma ik jo rr a zib * @version $Id$ * * User: mjorra, Date: 18.08.2008, Time: 17:30:31 */ public class SliceKindCreationValidator { private String URI; // must be unique private AccessMask mode; // must not be null private Set<Subspace> subspaces; // can be null private CreateSliceKindAction Action; private SliceKind sliceKind; public SliceKindCreationValidator( ) { } /** * Delivers a newly created action, w/o entity manager. */ CreateSliceKindAction createCreateSliceAction( ) { Action = new CreateSliceKindAction( URI, mode ); sliceKind = new SliceKind( ); Action.setModel( sliceKind ); return Action; } void validate( SliceKind sk ) { assertEquals( URI, sk.getId( ) ); assertEquals( mode, sk.getPermission( ) ); // assertSame( null, sk.getMetaSubspaces( ) ); } void validateFromDB( SliceKind sl, EntityManager em ) { Query q = em.createQuery( "SELECT x FROM SliceKinds x WHERE x.URI = :uriParam " ); q.setParameter( "uriParam", URI ); List<SliceKind> rl = (List<SliceKind>) q.getResultList(); System.out.println( "validiate slice kind form db " ); validate( rl.get( 0 ) ); q = em.createQuery( "SELECT x.permission FROM SliceKinds x WHERE x.URI = :uriParam " ); q.setParameter( "uriParam", URI ); AccessMask msk = (AccessMask) q.getSingleResult(); assertEquals( mode, msk); // q = em.createQuery( "SELECT x.metaSubspaces FROM SliceKinds x WHERE x.URI = :uriParam " ); // q.setParameter( "uriParam", URI ); // List<MetaSubspace> srl = (List<MetaSubspace>) q.getResultList(); // assertTrue( "no meta subspaces?", srl.size( ) == 0 ); } public String getURI() { return URI; } public void setURI( String URI ) { this.URI = URI; } public AccessMask getPermission() { return mode; } public void setPermission( AccessMask perm ) { this.mode = perm; } public Set<Subspace> getSubspaces() { return subspaces; } public void setSubspaces( Set<Subspace> subspaces ) { this.subspaces = subspaces; } public CreateSliceKindAction getAction() { if( Action != null ) return createCreateSliceAction(); return Action; } public SliceKind getSliceKind() { return sliceKind; } public void setSliceKind( SliceKind sliceKind ) { this.sliceKind = sliceKind; } }