From 2d2b96802499a73230c10b1d265707bab31dbed4 Mon Sep 17 00:00:00 2001 From: Chai Feng Date: Sat, 19 Oct 2019 13:23:34 +0200 Subject: [PATCH] Add tests for ufw-docker--service-allow, failed scenarios --- test/ufw-docker-service.test.sh | 45 ++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/test/ufw-docker-service.test.sh b/test/ufw-docker-service.test.sh index 837a4b6..00eeee4 100755 --- a/test/ufw-docker-service.test.sh +++ b/test/ufw-docker-service.test.sh @@ -15,12 +15,15 @@ source "$working_dir"/bach/bach.sh @ignore remove_blank_lines @ignore echo @ignore err - @ignore die DEFAULT_PROTO=tcp GREP_REGEXP_INSTANCE_NAME="[-_.[:alnum:]]\\+" } +function die() { + return 1 +} + function load-ufw-docker-function() { set -euo pipefail @@ -119,3 +122,43 @@ test-ufw-docker--get-service-name() { test-ufw-docker--get-service-name-assert() { docker service inspect database --format "{{.Spec.Name}}" } + + +test-ufw-docker--service-allow-invalid-port-syntax() { + @mockfalse grep -E '^[0-9]+(/(tcp|udp))?$' + + load-ufw-docker-function ufw-docker--service-allow + ufw-docker--service-allow webapp invalid-port +} +test-ufw-docker--service-allow-invalid-port-syntax-assert() { + @do-nothing + @fail +} + + +test-ufw-docker--service-allow-an-non-existed-service() { + @mocktrue grep -E '^[0-9]+(/(tcp|udp))?$' + @mock ufw-docker--get-service-id web404 === @stdout "" + + load-ufw-docker-function ufw-docker--service-allow + ufw-docker--service-allow web404 80/tcp +} +test-ufw-docker--service-allow-an-non-existed-service-assert() { + @do-nothing + @fail +} + + +test-ufw-docker--service-allow-a-service-without-ports-published() { + @mocktrue grep -E '^[0-9]+(/(tcp|udp))?$' + @mock ufw-docker--get-service-id private-web === @stdout "" + @mock docker service inspect private-web \ + --format '{{range .Endpoint.Spec.Ports}}{{.PublishedPort}} {{.TargetPort}}/{{.Protocol}}{{"\n"}}{{end}}' === @stdout "" + + load-ufw-docker-function ufw-docker--service-allow + ufw-docker--service-allow private-web 80/tcp +} +test-ufw-docker--service-allow-a-service-without-ports-published-assert() { + @do-nothing + @fail +}