diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 21daf7f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ -sudo: true -services: - - docker - -before_install: - - docker pull mongo:3.0.6 - - docker pull elasticsearch:1.7.1 - - docker pull spotify/kafka - - docker pull nginx:1.17.10 - - docker pull nginx:1.7.11 - - docker pull confluentinc/cp-zookeeper:5.5.0 - - docker pull confluentinc/cp-kafka:5.5.0 - - docker pull confluentinc/cp-schema-registry:5.5.0 - - docker pull neo4j:3.0.3 - - docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4 - - docker pull whisk/cassandra:2.1.8 - - docker pull postgres:9.5.3 - -language: scala - -scala: - - 2.13.1 - -jdk: - - openjdk8 - -cache: - directories: - - $HOME/.ivy2/cache - - $HOME/.sbt/boot/ - -before_cache: - # Tricks to avoid unnecessary cache updates - - find $HOME/.ivy2 -name "ivydata-*.properties" -delete - - find $HOME/.sbt -name "*.lock" -delete diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..4a30e57 --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,17 @@ +[comment]: <> (Don't edit this file!) +[comment]: <> (It is automatically updated after every release of https://github.com/47degrees/.github) +[comment]: <> (If you want to suggest a change, please open a PR or issue in that repository) + +# Authors + +## Maintainers + +The maintainers of the project are: + +- [![BenFradet](https://avatars2.githubusercontent.com/u/1737211?v=4&s=20) **Ben Fradet (BenFradet)**](https://github.com/BenFradet) + +## Contributors + +These are the people that have contributed to the _docker-testkit-munit_ project: + +- [![BenFradet](https://avatars2.githubusercontent.com/u/1737211?v=4&s=20) **Ben Fradet (BenFradet)**](https://github.com/BenFradet) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..1cf05d1 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,22 @@ +[comment]: <> (Don't edit this file!) +[comment]: <> (It is automatically updated after every release of https://github.com/47degrees/.github) +[comment]: <> (If you want to suggest a change, please open a PR or issue in that repository) + +# Code of Conduct + +We are committed to providing a friendly, safe and welcoming +environment for all, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal +appearance, body size, race, ethnicity, age, religion, nationality, or +other such characteristics. + +Everyone is expected to follow the +[Scala Code of Conduct](https://typelevel.org/code-of-conduct.html) when +discussing the project on the available communication channels. If you +are being harassed, please contact us immediately so that we can +support you. + +## Moderation + +For any questions, concerns, or moderation requests please contact a +[member of the project](AUTHORS.md#maintainers). \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4af0916 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +[comment]: <> (Don't edit this file!) +[comment]: <> (It is automatically updated after every release of https://github.com/47degrees/.github) +[comment]: <> (If you want to suggest a change, please open a PR or issue in that repository) + +# Contributing + +Discussion around _docker-testkit-munit_ happens in the [GitHub issues](https://github.com/47degrees/docker-testkit-munit/issues) and [pull requests](https://github.com/47degrees/docker-testkit-munit/pulls). + +Feel free to open an issue if you notice a bug, have an idea for a feature, or have a question about +the code. Pull requests are also welcome. + +People are expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md) when discussing _docker-testkit-munit_ on the Github page or other venues. + +If you are being harassed, please contact one of [us](AUTHORS.md#maintainers) immediately so that we can support you. In case you cannot get in touch with us please write an email to [@ORG_NAME@](mailto:@ORG_EMAIL@). + +## How can I help? + +_docker-testkit-munit_ follows a standard [fork and pull](https://help.github.com/articles/using-pull-requests/) model for contributions via GitHub pull requests. + +The process is simple: + + 1. Find something you want to work on + 2. Let us know you are working on it via GitHub issues/pull requests + 3. Implement your contribution + 4. Write tests + 5. Update the documentation + 6. Submit pull request + +You will be automatically included in the [AUTHORS.md](AUTHORS.md#contributors) file as contributor in the next release. + +If you encounter any confusion or frustration during the contribution process, please create a GitHub issue and we'll do our best to improve the process. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..3e84645 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (C) @YEAR_RANGE@ @COPYRIGHT_OWNER@ + + 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. diff --git a/NOTICE.md b/NOTICE.md new file mode 100644 index 0000000..37772ad --- /dev/null +++ b/NOTICE.md @@ -0,0 +1,9 @@ +[comment]: <> (Don't edit this file!) +[comment]: <> (It is automatically updated after every release of https://github.com/47degrees/.github) +[comment]: <> (If you want to suggest a change, please open a PR or issue in that repository) + +docker-testkit-munit + +Copyright (c) 2020 47 Degrees. All rights reserved. + +Licensed under Apache 2.0. See [LICENSE](LICENSE.md) for terms. diff --git a/README.md b/README.md index f2516c0..8110fad 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ ## docker-testkit-munit -[![Build Status](https://travis-ci.org/BenFradet/docker-testkit-munit.svg?branch=master)](https://travis-ci.org/BenFradet/docker-testkit-munit) - -This is an integration for [docker-testkit](https://github.com/whisklabs/docker-it-scala/) -and [munit](https://scalameta.org/munit/). +This is the [munit](https://scalameta.org/munit) integration for +[docker-testkit](https://github.com/whisklabs/docker-it-scala/). ### Usage -To add this to your SBT project: +To leverage this in your SBT project, using SBT +[integration test settings](https://www.scala-sbt.org/1.x/docs/Testing.html#Integration+Tests): ```scala lazy val root = (project in file(".")) @@ -16,25 +15,23 @@ lazy val root = (project in file(".")) Defaults.itSettings, testFrameworks += new TestFramework("munit.Framework"), libraryDependencies += Seq( - "com.scalameta" %% "munit" % "0.7.3" % "it,test" - "com.whisk" %% "docker-testkit-impl-spotify" % "0.9.9" % "it", - "com.github.benfradet" %% "docker-testkit-munit" % "0.1.0" % "it" + "com.scalameta" %% "munit" % "0.7.3" % "it,test" + "com.whisk" %% "docker-testkit-impl-spotify" % "0.9.9" % "it", + "com.47deg" %% "docker-testkit-munit" % "0.1.0" % "it" ) ) ``` -Using SBT `it` settings: https://www.scala-sbt.org/1.x/docs/Testing.html#Integration+Tests. - In your integration test: ```scala -import com.github.benfradet.docker.munit.DockerTestKit +import docker.munit.DockerTestKit import com.whisk.docker._ import com.whisk.docker.impl.spotify.DockerKitSpotify import munit.FunSuite trait Nginx extends DockerTestKit with DockerKitSpotify { self: FunSuite => - override def dockerContainers = DockerContainer("nginx:1.7.10") :: dockerContainers + override def dockerContainers = DockerContainer("nginx:1.17.10") :: dockerContainers } class IntegrationText extends FunSuite with Nginx { diff --git a/build.sbt b/build.sbt index ed40e46..cfd953c 100644 --- a/build.sbt +++ b/build.sbt @@ -1,23 +1,16 @@ -lazy val commonSettings = Seq( - organization := "com.github.benfradet", - version := "0.1.0", - scalaVersion := "2.13.1", - fork in Test := true -) +addCommandAlias("ci-test", "scalafmtCheckAll; scalafmtSbtCheck; test") +addCommandAlias("ci-docs", "github; project-docs/mdoc; headerCreateAll") -lazy val munit = project +lazy val testkit = project .in(file(".")) - .settings(commonSettings: _*) - .settings( - name := "docker-testkit-munit", - testFrameworks += new TestFramework("munit.Framework"), - libraryDependencies ++= Seq( - "org.scalameta" %% "munit" % "0.7.3", - "com.whisk" %% "docker-testkit-core" % "0.9.9", - "com.whisk" %% "docker-testkit-impl-spotify" % "0.9.9" % Test, - "com.whisk" %% "docker-testkit-impl-docker-java" % "0.9.9" % Test, - "com.whisk" %% "docker-testkit-samples" % "0.9.9" % Test, - "ch.qos.logback" % "logback-classic" % "1.2.1" % Test, - "org.postgresql" % "postgresql" % "9.4.1210" % Test - ) - ) + .settings(moduleName := "docker-testkit-munit") + .settings(testkitSettings: _*) + +lazy val `project-docs` = project + .in(file(".docs")) + .aggregate(testkit) + .settings(moduleName := "docker-testkit-munit-project-docs") + .settings(mdocIn := file(".docs")) + .settings(mdocOut := file(".")) + .settings(skip in publish := true) + .enablePlugins(MdocPlugin) diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala new file mode 100644 index 0000000..46f2b87 --- /dev/null +++ b/project/ProjectPlugin.scala @@ -0,0 +1,35 @@ +import sbt.Keys._ +import sbt._ +import com.alejandrohdezma.sbt.github.SbtGithubPlugin + +object ProjectPlugin extends AutoPlugin { + + override def trigger: PluginTrigger = allRequirements + + override def requires: Plugins = SbtGithubPlugin + + object autoImport { + + lazy val testkitSettings = Seq( + libraryDependencies ++= Seq( + "org.scalameta" %% "munit" % "0.7.3", + "com.whisk" %% "docker-testkit-core" % "0.9.9", + "com.whisk" %% "docker-testkit-impl-spotify" % "0.9.9" % Test, + "com.whisk" %% "docker-testkit-impl-docker-java" % "0.9.9" % Test, + "com.whisk" %% "docker-testkit-samples" % "0.9.9" % Test, + "ch.qos.logback" % "logback-classic" % "1.2.3" % Test, + "org.postgresql" % "postgresql" % "9.4.1212" % Test + ) + ) + } + + override def projectSettings: Seq[Def.Setting[_]] = + Seq( + organization := "com.47deg", + organizationName := "47 Degrees", + organizationHomepage := Some(url("https://47deg.com")), + scalaVersion := "2.13.2", + testFrameworks += new TestFramework("munit.Framework"), + fork in Test := true + ) +} diff --git a/project/plugins.sbt b/project/plugins.sbt index ede174d..95d8702 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,2 +1,9 @@ -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.11") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.3") +addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.1.5") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.4") +addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.6.0") +addSbtPlugin("com.alejandrohdezma" %% "sbt-github" % "0.8.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-header" % "0.8.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-mdoc" % "0.8.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-mdoc-toc" % "0.2") +addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.11") diff --git a/src/main/scala/com/github/benfradet/docker/munit/DockerTestKit.scala b/src/main/scala/docker/munit/DockerTestKit.scala similarity index 83% rename from src/main/scala/com/github/benfradet/docker/munit/DockerTestKit.scala rename to src/main/scala/docker/munit/DockerTestKit.scala index 63d777a..c564187 100644 --- a/src/main/scala/com/github/benfradet/docker/munit/DockerTestKit.scala +++ b/src/main/scala/docker/munit/DockerTestKit.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker.DockerKit diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index aea0412..03e066c 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -1,5 +1,4 @@ - @@ -7,8 +6,7 @@ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - \ No newline at end of file + diff --git a/src/test/scala/com/github/benfradet/docker/munit/CassandraServiceSpec.scala b/src/test/scala/docker/munit/CassandraServiceSpec.scala similarity index 62% rename from src/test/scala/com/github/benfradet/docker/munit/CassandraServiceSpec.scala rename to src/test/scala/docker/munit/CassandraServiceSpec.scala index 65b946d..599a0ad 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/CassandraServiceSpec.scala +++ b/src/test/scala/docker/munit/CassandraServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.github.dockerjava.core.DefaultDockerClientConfig @@ -6,14 +6,14 @@ import com.github.dockerjava.netty.NettyDockerCmdExecFactory import com.whisk.docker.impl.dockerjava.{Docker, DockerJavaExecutorFactory} import _root_.munit.FunSuite -class CassandraServiceSpec - extends FunSuite - with DockerCassandraService - with DockerTestKit { +class CassandraServiceSpec extends FunSuite with DockerCassandraService with DockerTestKit { override implicit val dockerFactory: DockerFactory = new DockerJavaExecutorFactory( - new Docker(DefaultDockerClientConfig.createDefaultConfigBuilder().build(), - factory = new NettyDockerCmdExecFactory())) + new Docker( + DefaultDockerClientConfig.createDefaultConfigBuilder().build(), + factory = new NettyDockerCmdExecFactory() + ) + ) test("cassandra node should be ready with log line checker") { isContainerReady(cassandraContainer).map(assert(_)) diff --git a/src/test/scala/com/github/benfradet/docker/munit/DependencyGraphReadyCheckSpec.scala b/src/test/scala/docker/munit/DependencyGraphReadyCheckSpec.scala similarity index 95% rename from src/test/scala/com/github/benfradet/docker/munit/DependencyGraphReadyCheckSpec.scala rename to src/test/scala/docker/munit/DependencyGraphReadyCheckSpec.scala index 58f70bc..334c6a3 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/DependencyGraphReadyCheckSpec.scala +++ b/src/test/scala/docker/munit/DependencyGraphReadyCheckSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.spotify.DockerKitSpotify @@ -43,7 +43,9 @@ class DependencyGraphReadyCheckSpec extends FunSuite with DockerKitSpotify { ContainerLink(zookeeperContainer, "zookeeper"), ContainerLink(kafkaContainer, "kafka") ) - .withReadyChecker(DockerReadyChecker.LogLineContains("Server started, listening for requests")) + .withReadyChecker( + DockerReadyChecker.LogLineContains("Server started, listening for requests") + ) override def dockerContainers = schemaRegistryContainer :: kafkaContainer :: zookeeperContainer :: super.dockerContainers diff --git a/src/test/scala/com/github/benfradet/docker/munit/DockerContainerLinkingSpec.scala b/src/test/scala/docker/munit/DockerContainerLinkingSpec.scala similarity index 86% rename from src/test/scala/com/github/benfradet/docker/munit/DockerContainerLinkingSpec.scala rename to src/test/scala/docker/munit/DockerContainerLinkingSpec.scala index 744b2a1..2e7a9bf 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/DockerContainerLinkingSpec.scala +++ b/src/test/scala/docker/munit/DockerContainerLinkingSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.dockerjava._ @@ -9,8 +9,8 @@ abstract class DockerContainerLinkingSpec extends FunSuite with DockerTestKit { lazy val cmdExecutor = implicitly[DockerCommandExecutor] - val pingName = "ping" - val pongName = "pong" + val pingName = "ping" + val pongName = "pong" val pingAlias = "pang" val pingService = DockerContainer("nginx:1.17.10", name = Some(pingName)) @@ -21,11 +21,11 @@ abstract class DockerContainerLinkingSpec extends FunSuite with DockerTestKit { override def dockerContainers = pingService :: pongService :: super.dockerContainers test("A DockerContainer should be linked to the specified containers upon start") { - val ping = cmdExecutor.inspectContainer(pingName) + val ping = cmdExecutor.inspectContainer(pingName) val pongPing = cmdExecutor.inspectContainer(s"$pongName/$pingAlias") for { - pingState <- ping + pingState <- ping pongPingState <- pongPing } yield { assert(pingState.nonEmpty) diff --git a/src/test/scala/com/github/benfradet/docker/munit/DockerContainerManagerSpec.scala b/src/test/scala/docker/munit/DockerContainerManagerSpec.scala similarity index 58% rename from src/test/scala/com/github/benfradet/docker/munit/DockerContainerManagerSpec.scala rename to src/test/scala/docker/munit/DockerContainerManagerSpec.scala index 89e121d..31fae73 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/DockerContainerManagerSpec.scala +++ b/src/test/scala/docker/munit/DockerContainerManagerSpec.scala @@ -1,5 +1,6 @@ -package com.whisk.docker +package docker.munit +import com.whisk.docker._ import com.whisk.docker.DockerContainerManager._ import com.whisk.docker.impl.dockerjava._ import _root_.munit.FunSuite @@ -15,35 +16,47 @@ class DockerContainerManagerSpec extends FunSuite { val linkedContainer4 = DockerContainer("nginx:1.17.10", name = Some("linkedContainer4")) .withLinks(ContainerLink(linkedContainer3, "linkedContainer4")) val linkedContainer5 = DockerContainer("nginx:1.17.10", name = Some("linkedContainer5")) - val linkedContainers = List(linkedContainer1, - linkedContainer2a, - linkedContainer2b, - linkedContainer3, - linkedContainer4, - linkedContainer5) + val linkedContainers = List( + linkedContainer1, + linkedContainer2a, + linkedContainer2b, + linkedContainer3, + linkedContainer4, + linkedContainer5 + ) test("a list of containers with deps - build a dep graph from a list of containers with deps") { - assertEquals(buildDependencyGraph(linkedContainers), ContainerDependencyGraph( - containers = Seq(linkedContainer1, linkedContainer5), - dependants = Some( - ContainerDependencyGraph( - containers = Seq(linkedContainer2a, linkedContainer2b), - dependants = Some( - ContainerDependencyGraph( - containers = Seq(linkedContainer3), - dependants = Some(ContainerDependencyGraph( - containers = Seq(linkedContainer4) - )) - )) - )) - )) + assertEquals( + buildDependencyGraph(linkedContainers), + ContainerDependencyGraph( + containers = Seq(linkedContainer1, linkedContainer5), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(linkedContainer2a, linkedContainer2b), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(linkedContainer3), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(linkedContainer4) + ) + ) + ) + ) + ) + ) + ) + ) } test("a list of containers with deps - build the dep graph from an empty list of containers") { - assertEquals(buildDependencyGraph(Seq.empty), ContainerDependencyGraph( - containers = Seq.empty, - dependants = None - )) + assertEquals( + buildDependencyGraph(Seq.empty), + ContainerDependencyGraph( + containers = Seq.empty, + dependants = None + ) + ) } test("a list of containers with deps - init all containers taking into account their deps") { @@ -64,36 +77,47 @@ class DockerContainerManagerSpec extends FunSuite { val unlinkedContainer4 = DockerContainer("nginx:1.17.10", name = Some("unlinkedContainer4")) .withUnlinkedDependencies(unlinkedContainer3) val unlinkedContainer5 = DockerContainer("nginx:1.17.10", name = Some("unlinkedContainer5")) - val unlinkedContainers = List(unlinkedContainer1, - unlinkedContainer2a, - unlinkedContainer2b, - unlinkedContainer3, - unlinkedContainer4, - unlinkedContainer5) + val unlinkedContainers = List( + unlinkedContainer1, + unlinkedContainer2a, + unlinkedContainer2b, + unlinkedContainer3, + unlinkedContainer4, + unlinkedContainer5 + ) test("a list of containers with links - build a dependency graph from a list of containers") { - assertEquals(buildDependencyGraph(unlinkedContainers), ContainerDependencyGraph( - containers = Seq(unlinkedContainer1, unlinkedContainer5), - dependants = Some( - ContainerDependencyGraph( - containers = Seq(unlinkedContainer2a, unlinkedContainer2b), - dependants = Some( - ContainerDependencyGraph( - containers = Seq(unlinkedContainer3), - dependants = Some(ContainerDependencyGraph( - containers = Seq(unlinkedContainer4) - )) - )) - )) - )) + assertEquals( + buildDependencyGraph(unlinkedContainers), + ContainerDependencyGraph( + containers = Seq(unlinkedContainer1, unlinkedContainer5), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(unlinkedContainer2a, unlinkedContainer2b), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(unlinkedContainer3), + dependants = Some( + ContainerDependencyGraph( + containers = Seq(unlinkedContainer4) + ) + ) + ) + ) + ) + ) + ) + ) } - test("a list of containers with links - build the dep graph from an empty list of containers") { - assertEquals(buildDependencyGraph(Seq.empty), ContainerDependencyGraph( - containers = Seq.empty, - dependants = None - )) + assertEquals( + buildDependencyGraph(Seq.empty), + ContainerDependencyGraph( + containers = Seq.empty, + dependants = None + ) + ) } test("a list of containers with links - init all containers taking into account their deps") { diff --git a/src/test/scala/com/github/benfradet/docker/munit/ElasticsearchServiceSpec.scala b/src/test/scala/docker/munit/ElasticsearchServiceSpec.scala similarity index 92% rename from src/test/scala/com/github/benfradet/docker/munit/ElasticsearchServiceSpec.scala rename to src/test/scala/docker/munit/ElasticsearchServiceSpec.scala index 4da4185..a32be8f 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/ElasticsearchServiceSpec.scala +++ b/src/test/scala/docker/munit/ElasticsearchServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.dockerjava.DockerKitDockerJava diff --git a/src/test/scala/com/github/benfradet/docker/munit/KafkaServiceSpec.scala b/src/test/scala/docker/munit/KafkaServiceSpec.scala similarity index 88% rename from src/test/scala/com/github/benfradet/docker/munit/KafkaServiceSpec.scala rename to src/test/scala/docker/munit/KafkaServiceSpec.scala index b8274c5..52c3499 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/KafkaServiceSpec.scala +++ b/src/test/scala/docker/munit/KafkaServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.spotify.DockerKitSpotify diff --git a/src/test/scala/com/github/benfradet/docker/munit/MongodbServiceSpec.scala b/src/test/scala/docker/munit/MongodbServiceSpec.scala similarity index 92% rename from src/test/scala/com/github/benfradet/docker/munit/MongodbServiceSpec.scala rename to src/test/scala/docker/munit/MongodbServiceSpec.scala index fd1bcc2..28935b3 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/MongodbServiceSpec.scala +++ b/src/test/scala/docker/munit/MongodbServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.spotify.DockerKitSpotify diff --git a/src/test/scala/com/github/benfradet/docker/munit/Neo4jServiceSpec.scala b/src/test/scala/docker/munit/Neo4jServiceSpec.scala similarity index 83% rename from src/test/scala/com/github/benfradet/docker/munit/Neo4jServiceSpec.scala rename to src/test/scala/docker/munit/Neo4jServiceSpec.scala index b380d2a..c28b4f3 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/Neo4jServiceSpec.scala +++ b/src/test/scala/docker/munit/Neo4jServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.spotify.docker.client.DefaultDockerClient @@ -8,7 +8,8 @@ import _root_.munit.FunSuite class Neo4jServiceSpec extends FunSuite with DockerTestKit with DockerNeo4jService { override implicit val dockerFactory: DockerFactory = new SpotifyDockerFactory( - DefaultDockerClient.fromEnv().build()) + DefaultDockerClient.fromEnv().build() + ) test("neo4j container should be ready") { isContainerReady(neo4jContainer).map(assert(_)) diff --git a/src/test/scala/com/github/benfradet/docker/munit/PingContainerKit.scala b/src/test/scala/docker/munit/PingContainerKit.scala similarity index 86% rename from src/test/scala/com/github/benfradet/docker/munit/PingContainerKit.scala rename to src/test/scala/docker/munit/PingContainerKit.scala index 9465b9e..707ca38 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/PingContainerKit.scala +++ b/src/test/scala/docker/munit/PingContainerKit.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import _root_.munit.FunSuite @@ -10,7 +10,8 @@ trait PingContainerKit extends DockerTestKit { self: FunSuite => val pongContainer = DockerContainer("nginx:1.7.11") .withPorts(80 -> None) .withReadyChecker( - DockerReadyChecker.HttpResponseCode(port = 80, path = "/", host = None, code = 200)) + DockerReadyChecker.HttpResponseCode(port = 80, path = "/", host = None, code = 200) + ) abstract override def dockerContainers = pingContainer :: pongContainer :: super.dockerContainers } diff --git a/src/test/scala/com/github/benfradet/docker/munit/PostgresServiceSpec.scala b/src/test/scala/docker/munit/PostgresServiceSpec.scala similarity index 66% rename from src/test/scala/com/github/benfradet/docker/munit/PostgresServiceSpec.scala rename to src/test/scala/docker/munit/PostgresServiceSpec.scala index 816554c..0fa9eb2 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/PostgresServiceSpec.scala +++ b/src/test/scala/docker/munit/PostgresServiceSpec.scala @@ -1,17 +1,15 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.spotify.docker.client.DefaultDockerClient import com.whisk.docker.impl.spotify.SpotifyDockerFactory import _root_.munit.FunSuite -class PostgresServiceSpec - extends FunSuite - with DockerTestKit - with DockerPostgresService { +class PostgresServiceSpec extends FunSuite with DockerTestKit with DockerPostgresService { override implicit val dockerFactory: DockerFactory = new SpotifyDockerFactory( - DefaultDockerClient.fromEnv().build()) + DefaultDockerClient.fromEnv().build() + ) test("postgres node should be ready with log line checker") { isContainerReady(postgresContainer).map(assert(_)) diff --git a/src/test/scala/com/github/benfradet/docker/munit/ZookeeperServiceSpec.scala b/src/test/scala/docker/munit/ZookeeperServiceSpec.scala similarity index 89% rename from src/test/scala/com/github/benfradet/docker/munit/ZookeeperServiceSpec.scala rename to src/test/scala/docker/munit/ZookeeperServiceSpec.scala index 61a3016..3221fb4 100644 --- a/src/test/scala/com/github/benfradet/docker/munit/ZookeeperServiceSpec.scala +++ b/src/test/scala/docker/munit/ZookeeperServiceSpec.scala @@ -1,4 +1,4 @@ -package com.github.benfradet.docker.munit +package docker.munit import com.whisk.docker._ import com.whisk.docker.impl.dockerjava.DockerKitDockerJava