+#!/bin/sh
+test_description='Test the pick command'
+
+. ./test-lib.sh
+
+test_expect_success \
+ 'Initialize the StGIT repository' \
+ '
+ stg init &&
+ stg new A -m "a" && echo A > a && git add a && stg refresh &&
+ stg new B -m "b" && echo B > b && git add b && stg refresh &&
+ stg branch --clone foo &&
+ stg new C -m "c" && echo C > c && git add c && stg refresh &&
+ stg new D-foo -m "d" && echo D > d && git add d && stg refresh &&
+ stg branch master
+ '
+
+test_expect_success \
+ 'Pick remote patch' \
+ '
+ stg pick foo:C &&
+ test "$(echo $(stg series --applied --noprefix))" = "A B C"
+ '
+
+test_expect_success \
+ 'Pick --unapplied remote patch' \
+ '
+ stg pick --unapplied --ref-branch foo --name D D-foo &&
+ test "$(echo $(stg series --applied --noprefix))" = "A B C" &&
+ test "$(echo $(stg series --unapplied --noprefix))" = "D"
+ '
+
+test_expect_success \
+ 'Pick local unapplied patch' \
+ '
+ stg pick D &&
+ test "$(echo $(stg series --applied --noprefix))" = "A B C D-0" &&
+ test "$(echo $(stg series --unapplied --noprefix))" = "D"
+ '
+
+test_expect_success \
+ 'Pick --fold --reverse local patch' \
+ '
+ stg pick --fold --reverse D &&
+ stg refresh && stg clean &&
+ test "$(echo $(stg series --applied --noprefix))" = "A B C" &&
+ test "$(echo $(stg series --unapplied --noprefix))" = "D"
+ '
+
+test_expect_success \
+ 'Pick --fold without applied patches' \
+ '
+ stg pop --all &&
+ stg pick --fold D &&
+ test "$(echo $(stg series --unapplied --noprefix))" = "A B C D" &&
+ test "$(echo $(stg status))" = "A d"
+ '
+
+test_done