/* * Copyright 2016-2017 the original author or authors. * * 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.springframework.data.cassandra.test.integration.forcequote.config; import static org.assertj.core.api.Assertions.*; import org.springframework.data.cassandra.core.CassandraOperations; /** * Tests to be executed using Java/XML configuration. * * @author Matthew T. Adams * @author Mark Paluch */ public class ForceQuotedRepositoryTests { ImplicitRepository implicitRepository; ImplicitPropertiesRepository implicitPropertiesRepository; ExplicitRepository explicitRepository; ExplicitPropertiesRepository explicitPropertiesRepository; CassandraOperations cassandraTemplate; public void before() { cassandraTemplate.truncate(Implicit.class); } public String query(String columnName, String tableName, String keyColumnName, String key) { return cassandraTemplate.getCqlOperations().queryForObject( String.format("select %s from %s where %s = '%s'", columnName, tableName, keyColumnName, key), String.class); } public void testImplicit() { Implicit entity = new Implicit(); String key = entity.getPrimaryKey(); Implicit s = implicitRepository.save(entity); assertThat(entity).isSameAs(s); Implicit f = implicitRepository.findById(key).get(); assertThat(entity).isNotSameAs(f); String stringValue = query("stringvalue", "\"Implicit\"", "primarykey", f.getPrimaryKey()); assertThat(stringValue).isEqualTo(f.getStringValue()); implicitRepository.deleteById(key); assertThat(implicitRepository.findById(key)).isNotPresent(); } public void testExplicit(String tableName) { Explicit entity = new Explicit(); String key = entity.getPrimaryKey(); Explicit s = explicitRepository.save(entity); assertThat(entity).isSameAs(s); Explicit f = explicitRepository.findById(key).get(); assertThat(entity).isNotSameAs(f); String stringValue = query("stringvalue", String.format("\"%s\"", tableName), "primarykey", f.getPrimaryKey()); assertThat(stringValue).isEqualTo(f.getStringValue()); explicitRepository.deleteById(key); assertThat(explicitRepository.findById(key)).isNotPresent(); } public void testImplicitProperties() { ImplicitProperties entity = new ImplicitProperties(); String key = entity.getPrimaryKey(); ImplicitProperties s = implicitPropertiesRepository.save(entity); assertThat(entity).isSameAs(s); ImplicitProperties f = implicitPropertiesRepository.findById(key).get(); assertThat(entity).isNotSameAs(f); String stringValue = query("\"stringValue\"", "implicitproperties", "\"primaryKey\"", f.getPrimaryKey()); assertThat(stringValue).isEqualTo(f.getStringValue()); implicitPropertiesRepository.deleteById(key); assertThat(implicitPropertiesRepository.findById(key)).isNotPresent(); } public void testExplicitProperties(String stringValueColumnName, String primaryKeyColumnName) { ExplicitProperties entity = new ExplicitProperties(); String key = entity.getPrimaryKey(); ExplicitProperties s = explicitPropertiesRepository.save(entity); assertThat(entity).isSameAs(s); ExplicitProperties f = explicitPropertiesRepository.findById(key).get(); assertThat(entity).isNotSameAs(f); String stringValue = query(String.format("\"%s\"", stringValueColumnName), "explicitproperties", String.format("\"%s\"", primaryKeyColumnName), f.getPrimaryKey()); assertThat(stringValue).isEqualTo(f.getStringValue()); implicitPropertiesRepository.deleteById(key); assertThat(implicitPropertiesRepository.findById(key)).isNotPresent(); } }