summaryrefslogtreecommitdiffstats
path: root/bin/core/imag-store/tests/001-create_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/core/imag-store/tests/001-create_test.sh')
-rw-r--r--bin/core/imag-store/tests/001-create_test.sh175
1 files changed, 175 insertions, 0 deletions
diff --git a/bin/core/imag-store/tests/001-create_test.sh b/bin/core/imag-store/tests/001-create_test.sh
new file mode 100644
index 00000000..591c15ba
--- /dev/null
+++ b/bin/core/imag-store/tests/001-create_test.sh
@@ -0,0 +1,175 @@
+#!/usr/bin/env bash
+
+source $(dirname ${BASH_SOURCE[0]})/../../tests/utils.sh
+source $(dirname ${BASH_SOURCE[0]})/utils.sh
+
+test_call() {
+ imag-store create -p test-call
+ if [[ ! $? -eq 0 ]]; then
+ err "Return value should be zero, was non-zero"
+ return 1;
+ fi
+}
+
+test_call_id() {
+ imag-store create -i test-call
+ if [[ ! $? -eq 0 ]]; then
+ err "Return value should be zero, was non-zero"
+ return 1;
+ fi
+}
+
+test_call_no_id() {
+ imag-store create
+ if [[ ! $? -eq 1 ]]; then
+ err "Return value should be zero, was non-zero"
+ return 1;
+ fi
+}
+
+test_mkstore() {
+ imag-store create -p test-mkstore || { err "Calling imag failed"; return 1; }
+ if [[ -d ${STORE} ]]; then
+ out "Store exists."
+ else
+ err "No store created"
+ return 1
+ fi
+}
+
+test_std_header() {
+ local expected=$(cat <<EOS
+---
+[imag]
+links = []
+version = "0.4.0"
+---
+
+EOS
+)
+
+ imag-store create -p test-std-header
+ local result=$(cat ${STORE}/test-std-header)
+ if [[ "$expected" == "$result" ]]; then
+ out "Expected store entry == result"
+ else
+ err "${STORE}/test-std-header differs from expected"
+ return 1
+ fi
+}
+
+test_std_header_plus_custom() {
+ local expected=$(cat <<EOS
+---
+[imag]
+links = []
+version = "0.4.0"
+
+[zzz]
+zzz = "z"
+---
+
+EOS
+)
+
+ imag-store create -p test-std-header-plus-custom entry -h zzz.zzz=z
+ local result=$(cat ${STORE}/test-std-header-plus-custom)
+ if [[ "$expected" == "$result" ]]; then
+ out "Expected store entry == result"
+ else
+ err "${STORE}/test differs from expected"
+ return 1
+ fi
+}
+
+test_std_header_plus_custom_multiheader() {
+ local expected=$(cat <<EOS
+---
+[foo]
+bar = "baz"
+
+[imag]
+links = []
+version = "0.4.0"
+
+[zzz]
+zzz = "z"
+---
+
+EOS
+)
+
+ local filename="test-std-header-plus-custom-multiheader"
+ imag-store create -p $filename entry -h zzz.zzz=z foo.bar=baz
+ local result=$(cat ${STORE}/$filename)
+ if [[ "$expected" == "$result" ]]; then
+ out "Expected store entry == result"
+ else
+ err "${STORE}/$filename differs from expected"
+ return 1
+ fi
+}
+
+
+test_std_header_plus_custom_multiheader_same_section() {
+ local expected=$(cat <<EOS
+---
+[imag]
+links = []
+version = "0.4.0"
+
+[zzz]
+bar = "baz"
+zzz = "z"
+---
+
+EOS
+)
+
+ local filename="test-std-header-plus-custom-mutliheader-same-section"
+ imag-store create -p $filename entry -h zzz.zzz=z zzz.bar=baz
+ local result=$(cat ${STORE}/$filename)
+ if [[ "$expected" == "$result" ]]; then
+ out "Expected store entry == result"
+ else
+ err "${STORE}/$filename differs from expected"
+ return 1
+ fi
+}
+
+test_std_header_plus_custom_and_content() {
+ local expected=$(cat <<EOS
+---
+[imag]
+links = []
+version = "0.4.0"
+
+[zzz]
+zzz = "z"
+---
+content
+EOS
+)
+
+ local name="test-std-header-plus-custom-and-content"
+ imag-store create -p $name entry -h zzz.zzz=z -c content
+ local result=$(cat ${STORE}/$name)
+ if [[ "$expected" == "$result" ]]; then
+ out "Expected store entry == result"
+ else
+ err "${STORE}/test differs from expected"
+ return 1
+ fi
+}
+
+invoke_tests \
+ test_call \
+ test_call_id \
+ test_call_no_id \
+ test_mkstore \
+ test_std_header \
+ test_std_header_plus_custom \
+ test_std_header_plus_custom_multiheader \
+ test_std_header_plus_custom_multiheader_same_section \
+ test_std_header_plus_custom_and_content
+