/** * Copyright (C) 2015 Born Informatik AG (www.born.ch) * * 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. */ package org.wte4j.persistence; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; import org.wte4j.EmbeddedDataBaseConfig; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes={EmbeddedDataBaseConfig.class}) @TransactionConfiguration(defaultRollback=true) @Transactional public class WordTemplateQueryTest { @PersistenceContext EntityManager entityManager; @Test public void queryAll() { List<PersistentTemplate> result = query().list(entityManager); assertEquals(4, result.size()); } @Test public void queryDocumentName() { List<PersistentTemplate> result = query().documentName("test1").list( entityManager); assertEquals(1, result.size()); assertEquals("test1", result.get(0).getDocumentName()); } @Test public void queryLanguage() { WordTemplateQuery query = query().language("en"); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); assertEquals("en", result.get(0).getLanguage()); } @Test public void queryInputType() { WordTemplateQuery query = query().inputType(Integer.class); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); assertEquals(Integer.class, result.get(0).getInputType()); } @Test public void queryEditor() { WordTemplateQuery query = query().editor("test_user"); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); assertEquals("test_user", result.get(0).getEditor().getUserId()); } @Test public void queryLocked() { WordTemplateQuery query = query().isLocked(true); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); assertEquals(true, result.get(0).isLocked()); } @Test public void queryNotLocked() { WordTemplateQuery query = query().isLocked(false); List<PersistentTemplate> result = query.list(entityManager); assertEquals(3, result.size()); assertEquals(false, result.get(0).isLocked()); } @Test public void queryLockedBy() { WordTemplateQuery query = query().isLockedBy("test_user"); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); assertEquals("test_user", result.get(0).getLockingUser().getUserId()); } @Test public void queryProperty() { Map<String, String> properties = new HashMap<String, String>(); properties.put("key1", "value1"); properties.put("key2", "value2"); WordTemplateQuery query = query().hasProperties(properties); List<PersistentTemplate> result = query.list(entityManager); assertEquals(1, result.size()); PersistentTemplate template = result.get(0); assertTrue(template.getProperties().entrySet() .containsAll(properties.entrySet())); } private WordTemplateQuery query() { return new WordTemplateQuery(null, entityManager.getCriteriaBuilder()); } }