This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 0d8348b5051e6d471f3bfb6175e704606103c36d Author: Benoit Tellier <[email protected]> AuthorDate: Tue Jul 28 14:04:43 2020 +0700 JAMES-3350 Split Guice server tests to better leverage lifecycle benefits Note that we don't need separate static extensions --- ...va => WithCassandraBlobStoreImmutableTest.java} | 21 +++--- .../apache/james/WithCassandraBlobStoreTest.java | 16 +--- ...eExtension.java => WithCacheImmutableTest.java} | 55 +++----------- ...ithCacheTest.java => WithCacheMutableTest.java} | 10 ++- .../org/apache/james/WithCassandraBlobStore.java | 88 ---------------------- .../james/WithCassandraBlobStoreImmutableTest.java | 49 ++++++++++++ ...java => WithCassandraBlobStoreMutableTest.java} | 10 ++- .../apache/james/WithDefaultAwsS3Extension.java | 71 ----------------- ...est.java => WithDefaultAwsS3ImmutableTest.java} | 11 ++- ...eTest.java => WithDefaultAwsS3MutableTest.java} | 12 ++- .../apache/james/WithDefaultSwiftExtension.java | 71 ----------------- ...est.java => WithDefaultSwiftImmutableTest.java} | 11 ++- ...eTest.java => WithDefaultSwiftMutableTest.java} | 12 ++- .../apache/james/WithEncryptedAwsS3Extension.java | 72 ------------------ ...t.java => WithEncryptedAwsS3ImmutableTest.java} | 12 ++- ...est.java => WithEncryptedAwsS3MutableTest.java} | 13 +++- .../apache/james/WithEncryptedSwiftExtension.java | 72 ------------------ ...t.java => WithEncryptedSwiftImmutableTest.java} | 12 ++- ...est.java => WithEncryptedSwiftMutableTest.java} | 13 +++- ...n.java => WithScanningSearchImmutableTest.java} | 56 +++----------- ...est.java => WithScanningSearchMutableTest.java} | 10 ++- .../james/jmap/draft/JmapJamesServerContract.java | 25 +++--- .../memory/MemoryJwtFilterIntegrationTest.java | 1 - 23 files changed, 182 insertions(+), 541 deletions(-) diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java similarity index 57% copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java index d8f99b4..884e061 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java @@ -24,16 +24,19 @@ import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtensi import org.apache.james.modules.TestJMAPServerModule; import org.junit.jupiter.api.extension.RegisterExtension; -class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { - +class WithCassandraBlobStoreImmutableTest implements JmapJamesServerContract, JamesServerContract { @RegisterExtension - static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch()) - .extension(new DockerElasticSearchExtension()) - .extension(new CassandraExtension()) - .extension(new SpamAssassinModuleExtension()) - .server(configuration -> CassandraJamesServerMain.createServer(configuration) - .overrideWith(new TestJMAPServerModule()) - .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) + static JamesServerExtension jamesServerExtension = baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) .build(); + static JamesServerBuilder<CassandraJamesServerConfiguration> baseExtensionBuilder() { + return TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch()) + .extension(new DockerElasticSearchExtension()) + .extension(new CassandraExtension()) + .extension(new SpamAssassinModuleExtension()) + .server(configuration -> CassandraJamesServerMain.createServer(configuration) + .overrideWith(new TestJMAPServerModule()) + .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)); + } } diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java index d8f99b4..2bf74d8 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java @@ -19,21 +19,11 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension; -import org.apache.james.modules.TestJMAPServerModule; import org.junit.jupiter.api.extension.RegisterExtension; -class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { - +class WithCassandraBlobStoreTest implements MailsShouldBeWellReceived { @RegisterExtension - static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch()) - .extension(new DockerElasticSearchExtension()) - .extension(new CassandraExtension()) - .extension(new SpamAssassinModuleExtension()) - .server(configuration -> CassandraJamesServerMain.createServer(configuration) - .overrideWith(new TestJMAPServerModule()) - .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) + static JamesServerExtension jamesServerExtension = WithCassandraBlobStoreImmutableTest.baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) .build(); - } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java similarity index 55% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java index a971e3e..5dbcf14 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java @@ -24,21 +24,17 @@ import org.apache.james.modules.AwsS3BlobStoreExtension; import org.apache.james.modules.RabbitMQExtension; import org.apache.james.modules.TestJMAPServerModule; import org.apache.james.modules.blobstore.BlobStoreConfiguration; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; +import org.junit.jupiter.api.extension.RegisterExtension; -public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - private final JamesServerExtension jamesServerExtension; +class WithCacheImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); - WithCacheExtension() { - jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> + static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtensionBuilder() { + return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> CassandraRabbitMQJamesConfiguration.builder() .workingDirectory(tmpDir) .configurationFromClasspath() @@ -54,37 +50,6 @@ public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback, .extension(new AwsS3BlobStoreExtension()) .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration) .overrideWith(new TestJMAPServerModule()) - .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) - .build(); + .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)); } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} +} \ No newline at end of file diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java similarity index 78% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java index ee5ebbc..53d8476 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java @@ -19,9 +19,11 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCacheExtension.class) -class WithCacheTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +class WithCacheMutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = WithCacheImmutableTest.baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } \ No newline at end of file diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java deleted file mode 100644 index 98dd3a6..0000000 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.james; - -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.apache.james.modules.RabbitMQExtension; -import org.apache.james.modules.TestJMAPServerModule; -import org.apache.james.modules.blobstore.BlobStoreConfiguration; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; - -public class WithCassandraBlobStore implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithCassandraBlobStore() { - jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> - CassandraRabbitMQJamesConfiguration.builder() - .workingDirectory(tmpDir) - .configurationFromClasspath() - .blobStore(BlobStoreConfiguration.builder() - .cassandra() - .disableCache() - .passthrough()) - .searchConfiguration(SearchConfiguration.elasticSearch()) - .build()) - .extension(new DockerElasticSearchExtension()) - .extension(new CassandraExtension()) - .extension(new RabbitMQExtension()) - .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration) - .overrideWith(new TestJMAPServerModule()) - .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java new file mode 100644 index 0000000..f6d1ed6 --- /dev/null +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.apache.james; + +import org.apache.james.jmap.draft.JmapJamesServerContract; +import org.apache.james.modules.RabbitMQExtension; +import org.apache.james.modules.TestJMAPServerModule; +import org.apache.james.modules.blobstore.BlobStoreConfiguration; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class WithCassandraBlobStoreImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); + + static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtensionBuilder() { + return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> + CassandraRabbitMQJamesConfiguration.builder() + .workingDirectory(tmpDir) + .configurationFromClasspath() + .blobStore(BlobStoreConfiguration.cassandra()) + .searchConfiguration(SearchConfiguration.elasticSearch()) + .build()) + .extension(new DockerElasticSearchExtension()) + .extension(new CassandraExtension()) + .extension(new RabbitMQExtension()) + .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration) + .overrideWith(new TestJMAPServerModule()) + .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)); + } +} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java similarity index 70% copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java index 33219bb..cbc908f 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java @@ -19,9 +19,11 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCassandraBlobStore.class) -public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithCassandraBlobStoreMutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = WithCassandraBlobStoreImmutableTest.baseExtensionBuilder() + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java deleted file mode 100644 index 03a035e..0000000 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.james; - -import org.apache.james.modules.AwsS3BlobStoreExtension; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; - -public class WithDefaultAwsS3Extension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithDefaultAwsS3Extension() { - jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() - .extension(new AwsS3BlobStoreExtension()) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java similarity index 75% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java index 7a3dfce..207f3cc 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java @@ -24,12 +24,17 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.blob.objectstorage.DefaultPayloadCodec; import org.apache.james.blob.objectstorage.PayloadCodec; import org.apache.james.jmap.draft.JmapJamesServerContract; +import org.apache.james.modules.AwsS3BlobStoreExtension; import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithDefaultAwsS3Extension.class) -public class WithDefaultAwsS3Test implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithDefaultAwsS3ImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new AwsS3BlobStoreExtension()) + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); @Test void defaultPayloadShouldBeByDefault(GuiceJamesServer jamesServer) { diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java similarity index 64% copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java index 33219bb..8e284d1 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java @@ -19,9 +19,13 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.modules.AwsS3BlobStoreExtension; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCassandraBlobStore.class) -public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithDefaultAwsS3MutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new AwsS3BlobStoreExtension()) + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java deleted file mode 100644 index 3e867aa..0000000 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.james; - -import org.apache.james.modules.SwiftBlobStoreExtension; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; - -public class WithDefaultSwiftExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithDefaultSwiftExtension() { - jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() - .extension(new SwiftBlobStoreExtension()) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java similarity index 75% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java index 0459647..f46a3c3 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java @@ -24,12 +24,17 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.blob.objectstorage.DefaultPayloadCodec; import org.apache.james.blob.objectstorage.PayloadCodec; import org.apache.james.jmap.draft.JmapJamesServerContract; +import org.apache.james.modules.SwiftBlobStoreExtension; import org.apache.james.modules.objectstorage.swift.DockerSwiftTestRule; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithDefaultSwiftExtension.class) -public class WithDefaultSwiftTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithDefaultSwiftImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new SwiftBlobStoreExtension()) + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); @Test void defaultPayloadShouldBeByDefault(GuiceJamesServer jamesServer) { diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java similarity index 64% copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java index 33219bb..fe4ae75 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java @@ -19,9 +19,13 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.modules.SwiftBlobStoreExtension; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCassandraBlobStore.class) -public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithDefaultSwiftMutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new SwiftBlobStoreExtension()) + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java deleted file mode 100644 index c4927a2..0000000 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.james; - -import org.apache.james.modules.AwsS3BlobStoreExtension; -import org.apache.james.modules.objectstorage.PayloadCodecFactory; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; - -public class WithEncryptedAwsS3Extension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithEncryptedAwsS3Extension() { - jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() - .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256)) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java similarity index 72% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java index aa500c6..c4172b7 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java @@ -24,12 +24,18 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.blob.objectstorage.AESPayloadCodec; import org.apache.james.blob.objectstorage.PayloadCodec; import org.apache.james.jmap.draft.JmapJamesServerContract; +import org.apache.james.modules.AwsS3BlobStoreExtension; +import org.apache.james.modules.objectstorage.PayloadCodecFactory; import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithEncryptedAwsS3Extension.class) -public class WithEncryptedAwsS3Test implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithEncryptedAwsS3ImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256)) + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); @Test void encryptedPayloadShouldBeConfiguredWhenProvidingEncryptedPayloadConfiguration(GuiceJamesServer jamesServer) { diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java similarity index 60% copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java index 33219bb..361e575 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java @@ -19,9 +19,14 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.modules.AwsS3BlobStoreExtension; +import org.apache.james.modules.objectstorage.PayloadCodecFactory; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCassandraBlobStore.class) -public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithEncryptedAwsS3MutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256)) + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java deleted file mode 100644 index 422a281..0000000 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.james; - -import org.apache.james.modules.SwiftBlobStoreExtension; -import org.apache.james.modules.objectstorage.PayloadCodecFactory; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; - -public class WithEncryptedSwiftExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithEncryptedSwiftExtension() { - jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() - .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256)) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); - } - - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java similarity index 72% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java index 0f998bc..aeb59d8 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java @@ -24,12 +24,18 @@ import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.blob.objectstorage.AESPayloadCodec; import org.apache.james.blob.objectstorage.PayloadCodec; import org.apache.james.jmap.draft.JmapJamesServerContract; +import org.apache.james.modules.SwiftBlobStoreExtension; +import org.apache.james.modules.objectstorage.PayloadCodecFactory; import org.apache.james.modules.objectstorage.swift.DockerSwiftTestRule; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithEncryptedSwiftExtension.class) -public class WithEncryptedSwiftTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithEncryptedSwiftImmutableTest implements JmapJamesServerContract, JamesServerContract { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256)) + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); @Test void encryptedPayloadShouldBeConfiguredWhenProvidingEncryptedPayloadConfiguration(GuiceJamesServer jamesServer) { diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java similarity index 60% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java index 33219bb..7f45b8e 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java @@ -19,9 +19,14 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.modules.SwiftBlobStoreExtension; +import org.apache.james.modules.objectstorage.PayloadCodecFactory; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithCassandraBlobStore.class) -public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +public class WithEncryptedSwiftMutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder() + .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256)) + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java similarity index 54% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java index ddeaabe..90fddc6 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java @@ -24,21 +24,11 @@ import org.apache.james.modules.AwsS3BlobStoreExtension; import org.apache.james.modules.RabbitMQExtension; import org.apache.james.modules.TestJMAPServerModule; import org.apache.james.modules.blobstore.BlobStoreConfiguration; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; +import org.junit.jupiter.api.extension.RegisterExtension; -public class WithScanningSearchExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { - - private final JamesServerExtension jamesServerExtension; - - WithScanningSearchExtension() { - jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> +class WithScanningSearchImmutableTest implements JmapJamesServerContract, JamesServerContract { + static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtension() { + return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir -> CassandraRabbitMQJamesConfiguration.builder() .workingDirectory(tmpDir) .configurationFromClasspath() @@ -53,37 +43,11 @@ public class WithScanningSearchExtension implements BeforeAllCallback, AfterAllC .extension(new AwsS3BlobStoreExtension()) .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration) .overrideWith(new TestJMAPServerModule()) - .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) - .build(); - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - jamesServerExtension.beforeAll(context); + .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)); } - @Override - public void afterAll(ExtensionContext context) throws Exception { - jamesServerExtension.afterAll(context); - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - jamesServerExtension.beforeEach(context); - } - - @Override - public void afterEach(ExtensionContext context) throws Exception { - jamesServerExtension.afterEach(context); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == GuiceJamesServer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return jamesServerExtension.getGuiceJamesServer(); - } -} + @RegisterExtension + static JamesServerExtension jamesServerExtension = baseExtension() + .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) + .build(); +} \ No newline at end of file diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java similarity index 78% rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java index ec30cc9..2a9ea35 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java @@ -19,9 +19,11 @@ package org.apache.james; -import org.apache.james.jmap.draft.JmapJamesServerContract; -import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(WithScanningSearchExtension.class) -class WithScanningSearchTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { +class WithScanningSearchMutableTest implements MailsShouldBeWellReceived { + @RegisterExtension + JamesServerExtension jamesServerExtension = WithScanningSearchImmutableTest.baseExtension() + .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST) + .build(); } \ No newline at end of file diff --git a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java index 461b0af..f9d7301 100644 --- a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java +++ b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java @@ -26,7 +26,6 @@ import java.nio.charset.StandardCharsets; import org.apache.james.GuiceJamesServer; import org.apache.james.domainlist.lib.DomainListConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import com.google.inject.Module; @@ -34,6 +33,7 @@ import com.google.inject.Module; import io.restassured.RestAssured; import io.restassured.builder.RequestSpecBuilder; import io.restassured.http.ContentType; +import io.restassured.specification.RequestSpecification; public interface JmapJamesServerContract { Module DOMAIN_LIST_CONFIGURATION_MODULE = binder -> binder.bind(DomainListConfiguration.class) @@ -43,19 +43,9 @@ public interface JmapJamesServerContract { .build()); String JAMES_SERVER_HOST = "127.0.0.1"; - @BeforeEach - default void setup(GuiceJamesServer server) throws Exception { - - RestAssured.requestSpecification = new RequestSpecBuilder() - .setContentType(ContentType.JSON) - .setAccept(ContentType.JSON) - .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8))) - .setPort(server.getProbe(JmapGuiceProbe.class).getJmapPort().getValue()) - .build(); - } - @Test - default void connectJMAPServerShouldRespondBadRequest() { + default void connectJMAPServerShouldRespondBadRequest(GuiceJamesServer server) { + RestAssured.requestSpecification = requestSpec(server); given() .body("{\"badAttributeName\": \"value\"}") .when() @@ -63,4 +53,13 @@ public interface JmapJamesServerContract { .then() .statusCode(400); } + + static RequestSpecification requestSpec(GuiceJamesServer server) { + return new RequestSpecBuilder() + .setContentType(ContentType.JSON) + .setAccept(ContentType.JSON) + .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8))) + .setPort(server.getProbe(JmapGuiceProbe.class).getJmapPort().getValue()) + .build(); + } } diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java index f724152..c1aeca7 100644 --- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java +++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java @@ -37,6 +37,5 @@ class MemoryJwtFilterIntegrationTest extends JwtFilterIntegrationTest { .overrideWith(new WebadminIntegrationTestModule()) .overrideWith(binder -> binder.bind(AuthenticationFilter.class).to(JwtFilter.class)) .overrideWith(binder -> binder.bind(JwtConfiguration.class).toInstance(jwtConfiguration()))) - .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS) .build(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
