diff --git a/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java b/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java
similarity index 95%
rename from src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java
rename to src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java
index b524936f..f9d8e863 100644
--- a/src/test/java/org/springframework/data/couchbase/TestApplicationConfig.java
+++ b/src/integration/java/org/springframework/data/couchbase/IntegrationTestApplicationConfig.java
@@ -15,7 +15,7 @@ import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.data.couchbase.core.WriteResultChecking;
@Configuration
-public class TestApplicationConfig extends AbstractCouchbaseConfiguration {
+public class IntegrationTestApplicationConfig extends AbstractCouchbaseConfiguration {
@Autowired
private Environment springEnv;
diff --git a/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java
new file mode 100644
index 00000000..c235f80a
--- /dev/null
+++ b/src/integration/java/org/springframework/data/couchbase/config/CouchbaseTemplateParserIntegrationTests.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2013 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.couchbase.config;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionReader;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+import org.springframework.core.io.ClassPathResource;
+
+/**
+ * @author Michael Nitschinger
+ */
+public class CouchbaseTemplateParserIntegrationTests {
+
+ DefaultListableBeanFactory factory;
+ BeanDefinitionReader reader;
+
+ @Before
+ public void setUp() {
+ factory = new DefaultListableBeanFactory();
+ reader = new XmlBeanDefinitionReader(factory);
+ }
+
+ @Test
+ public void readsCouchbaseTemplateAttributesCorrectly() {
+ reader.loadBeanDefinitions(new ClassPathResource("configurations/couchbase-template-bean.xml"));
+
+ BeanDefinition definition = factory.getBeanDefinition("couchbaseTemplate");
+ assertEquals(1, definition.getConstructorArgumentValues().getArgumentCount());
+
+ factory.getBean("couchbaseTemplate");
+ }
+
+ @Test
+ public void readsCouchbaseTemplateWithTranslationServiceAttributesCorrectly() {
+ reader.loadBeanDefinitions(new ClassPathResource("configurations/couchbase-template-with-translation-service-bean.xml"));
+
+ BeanDefinition definition = factory.getBeanDefinition("couchbaseTemplate");
+ assertEquals(2, definition.getConstructorArgumentValues().getArgumentCount());
+
+ factory.getBean("couchbaseTemplate");
+ }
+
+ /**
+ * Test case for DATACOUCH-47.
+ */
+ @Test
+ public void allowsMultipleBuckets() {
+ reader.loadBeanDefinitions(new ClassPathResource("configurations/couchbase-multi-bucket-bean.xml"));
+
+ factory.getBean("cb-template-first");
+ factory.getBean("cb-template-second");
+ }
+
+}
diff --git a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java
index 67624d4f..6975221c 100644
--- a/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java
+++ b/src/integration/java/org/springframework/data/couchbase/core/CouchbaseTemplateTests.java
@@ -47,7 +47,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
-import org.springframework.data.couchbase.TestApplicationConfig;
+import org.springframework.data.couchbase.IntegrationTestApplicationConfig;
import org.springframework.data.couchbase.core.mapping.Document;
import org.springframework.data.couchbase.core.mapping.Field;
import org.springframework.test.context.ContextConfiguration;
@@ -58,7 +58,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author Michael Nitschinger
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = TestApplicationConfig.class)
+@ContextConfiguration(classes = IntegrationTestApplicationConfig.class)
@TestExecutionListeners(CouchbaseTemplateViewListener.class)
public class CouchbaseTemplateTests {
diff --git a/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java b/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java
new file mode 100644
index 00000000..62d71e0d
--- /dev/null
+++ b/src/integration/java/org/springframework/data/couchbase/monitor/ClientInfoTests.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2013 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.couchbase.monitor;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.core.IsNot.not;
+
+import com.couchbase.client.java.Bucket;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.couchbase.IntegrationTestApplicationConfig;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * @author Michael Nitschinger
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = IntegrationTestApplicationConfig.class)
+public class ClientInfoTests {
+
+ /**
+ * Contains a reference to the actual CouchbaseClient.
+ */
+ @Autowired
+ private Bucket client;
+
+ private ClientInfo ci;
+
+ @Before
+ public void setup() throws Exception {
+ ci = new ClientInfo(client);
+ }
+
+ @Test
+ public void hostNames() {
+ String hostnames = ci.getHostNames();
+ assertThat(hostnames, not(isEmptyString()));
+ }
+
+}
diff --git a/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java b/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java
new file mode 100644
index 00000000..63c5441c
--- /dev/null
+++ b/src/integration/java/org/springframework/data/couchbase/monitor/ClusterInfoTests.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2013 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.couchbase.monitor;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.greaterThan;
+
+import com.couchbase.client.java.Bucket;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.couchbase.IntegrationTestApplicationConfig;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * @author Michael Nitschinger
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = IntegrationTestApplicationConfig.class)
+public class ClusterInfoTests {
+
+ /**
+ * Contains a reference to the actual CouchbaseClient.
+ */
+ @Autowired
+ private Bucket client;
+
+ private ClusterInfo ci;
+
+ @Before
+ public void setup() throws Exception {
+ ci = new ClusterInfo(client);
+ }
+
+ @Test
+ public void totalDiskAssigned() {
+ assertThat(ci.getTotalDiskAssigned(), greaterThan(0L));
+ }
+
+ @Test
+ public void totalRAMUsed() {
+ assertThat(ci.getTotalRAMUsed(), greaterThan(0L));
+ }
+
+}
diff --git a/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml b/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml
new file mode 100644
index 00000000..1a480dd1
--- /dev/null
+++ b/src/integration/resources/configurations/couchbase-multi-bucket-bean.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/integration/resources/configurations/couchbase-template-bean.xml b/src/integration/resources/configurations/couchbase-template-bean.xml
new file mode 100644
index 00000000..9b0ada0b
--- /dev/null
+++ b/src/integration/resources/configurations/couchbase-template-bean.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml b/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml
new file mode 100644
index 00000000..e2f31a1f
--- /dev/null
+++ b/src/integration/resources/configurations/couchbase-template-with-translation-service-bean.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java b/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
index 8f31c1fa..ac279d5a 100644
--- a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
+++ b/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java
@@ -92,8 +92,8 @@ public class CouchbaseTemplate implements CouchbaseOperations, ApplicationEventP
this(client, null, null);
}
- public CouchbaseTemplate(final Bucket client, final CouchbaseConverter converter) {
- this(client, converter, null);
+ public CouchbaseTemplate(final Bucket client, final TranslationService translationService) {
+ this(client, null, translationService);
}
public CouchbaseTemplate(final Bucket client, final CouchbaseConverter converter,
diff --git a/src/test/java/org/springframework/data/couchbase/UnitTestApplicationConfig.java b/src/test/java/org/springframework/data/couchbase/UnitTestApplicationConfig.java
new file mode 100644
index 00000000..62be5f77
--- /dev/null
+++ b/src/test/java/org/springframework/data/couchbase/UnitTestApplicationConfig.java
@@ -0,0 +1,67 @@
+package org.springframework.data.couchbase;
+
+import java.util.Collections;
+import java.util.List;
+
+import com.couchbase.client.java.Bucket;
+import com.couchbase.client.java.Cluster;
+import com.couchbase.client.java.CouchbaseBucket;
+import com.couchbase.client.java.CouchbaseCluster;
+import com.couchbase.client.java.env.CouchbaseEnvironment;
+import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;
+import org.springframework.data.couchbase.core.CouchbaseTemplate;
+import org.springframework.data.couchbase.core.WriteResultChecking;
+
+@Configuration
+public class UnitTestApplicationConfig extends AbstractCouchbaseConfiguration {
+
+ @Bean
+ public String couchbaseAdminUser() {
+ return "someLogin";
+ }
+
+ @Bean
+ public String couchbaseAdminPassword() {
+ return "somePassword";
+ }
+
+ @Override
+ protected List getBootstrapHosts() {
+ return Collections.singletonList("192.1.2.3");
+ }
+
+ @Override
+ protected String getBucketName() {
+ return "someBucket";
+ }
+
+ @Override
+ protected String getBucketPassword() {
+ return "someBucketPassword";
+ }
+
+ @Override
+ public Cluster couchbaseCluster() throws Exception {
+ return Mockito.mock(CouchbaseCluster.class);
+ }
+
+ @Override
+ public Bucket couchbaseClient() throws Exception {
+ return Mockito.mock(CouchbaseBucket.class);
+ }
+
+ @Override
+ public CouchbaseTemplate couchbaseTemplate() throws Exception {
+ CouchbaseTemplate template = super.couchbaseTemplate();
+ template.setWriteResultChecking(WriteResultChecking.LOG);
+ return template;
+ }
+}
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java b/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
index 1fb609fb..58c68d8a 100644
--- a/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
+++ b/src/test/java/org/springframework/data/couchbase/core/mapping/CustomConvertersTests.java
@@ -34,7 +34,7 @@ import org.springframework.core.convert.converter.Converter;
import org.springframework.data.annotation.Id;
import org.springframework.data.convert.ReadingConverter;
import org.springframework.data.convert.WritingConverter;
-import org.springframework.data.couchbase.TestApplicationConfig;
+import org.springframework.data.couchbase.UnitTestApplicationConfig;
import org.springframework.data.couchbase.core.convert.CustomConversions;
import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter;
import org.springframework.test.context.ContextConfiguration;
@@ -46,7 +46,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author Michael Nitschinger
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = TestApplicationConfig.class)
+@ContextConfiguration(classes = UnitTestApplicationConfig.class)
public class CustomConvertersTests {
@Autowired
diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
index ea9a08ee..cf392a7e 100644
--- a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
+++ b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java
@@ -42,7 +42,7 @@ import org.springframework.core.convert.converter.Converter;
import org.springframework.data.annotation.Id;
import org.springframework.data.convert.ReadingConverter;
import org.springframework.data.convert.WritingConverter;
-import org.springframework.data.couchbase.TestApplicationConfig;
+import org.springframework.data.couchbase.UnitTestApplicationConfig;
import org.springframework.data.couchbase.core.convert.CustomConversions;
import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter;
import org.springframework.data.mapping.model.MappingException;
@@ -53,7 +53,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author Michael Nitschinger
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = TestApplicationConfig.class)
+@ContextConfiguration(classes = UnitTestApplicationConfig.class)
public class MappingCouchbaseConverterTests {
@Autowired