Feature: Configurable Scenario: User configures application and mistypes password entry 1 (first time) Given I am going to run the program And I specify the command "configure" And No configuration exists And I input the following "Password001" And I input the following "BADDATA" When I run the application Then The application should fail And I should see an error message containing "Password mismatch" Scenario: User configures application and mistypes password entry 1 (configuration exists) Given I am going to run the program And I specify the command "configure" And A configuration exists And I select the option "y" And I input the following "Password001" And I input the following "BADDATA" When I run the application Then The application should fail And I should see an error message containing "Password mismatch" Scenario: User configures application and mistypes password entry 2 (first time) Given I am going to run the program And I specify the command "configure" And No configuration exists And I input the following "BADDATA" And I input the following "Password001" When I run the application Then The application should fail And I should see an error message containing "Password mismatch" Scenario: User configures application and mistypes password entry 2 (configuration exists) Given I am going to run the program And I specify the command "configure" And A configuration exists And I select the option "y" And I input the following "BADDATA" And I input the following "Password001" When I run the application Then The application should fail And I should see an error message containing "Password mismatch" Scenario: User configures application and does not test (first time) Given I am going to run the program And I specify the command "configure" And No configuration exists And I input the following "Password001" And I input the following "Password001" And I input the following "AKIAIW6QO5LAD6KXBDUA" And I input the following "e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2" And I select the option "n" When I run the application Then I should see "Configuration successful!" Scenario: User configures application and does not test (overwrites old config) Given I am going to run the program And I specify the command "configure" And A configuration exists And I select the option "y" And I input the following "Password001" And I input the following "Password001" And I input the following "AKIAIW6QO5LAD6KXBDUA" And I input the following "e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2" And I select the option "n" When I run the application Then I should see "Configuration successful!" Scenario: User configures application (does not overwrite old config) Given I am going to run the program And I specify the command "configure" And A configuration exists And I select the option "n" When I run the application Then I should see an error message containing "Already configured. No changes made..." Scenario: User configures application (export flags) Given I am going to run the program And I specify the command "configure" And I specify flags for export When I run the application Then The application should fail And I should see an error message containing "Argument Error:" And I should see an error message containing "export option" Scenario: User configures application (sync flags) Given I am going to run the program And I specify the command "configure" And I specify flags for sync When I run the application Then The application should fail And I should see an error message containing "Argument Error:" And I should see an error message containing "sync option" Scenario Outline: User configures application with bad data and does not test (initial config) Given I am going to run the program And No configuration exists And I specify the command "configure" And I input the following "Password001" And I input the following "Password001" And I input the following "" And I input the following "" And I select the option "n" When I run the application Then I should see "Configuration successful!" Examples: |KeyID|KeySecret| |BADDATA|e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2| |AKIAIW6QO5LAD6KXBDUA|BADDATA| |BADDATA|BADDATA| Scenario: User configures application and tests (first time) Given I am going to run the program And I specify the command "configure" And No configuration exists And I input the following "Password001" And I input the following "Password001" And I input the following "AKIAIW6QO5LAD6KXBDUA" And I input the following "e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2" And I select the option "y" When I run the application Then I should see "Configuration successful!" Scenario: User configures application and tests (overwrites old config) Given I am going to run the program And I specify the command "configure" And A configuration exists And I select the option "y" And I input the following "Password001" And I input the following "Password001" And I input the following "AKIAIW6QO5LAD6KXBDUA" And I input the following "e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2" And I select the option "y" When I run the application Then I should see "Configuration successful!" Scenario Outline: User configures application with bad data and tests (initial config) Given I am going to run the program And No configuration exists And I specify the command "configure" And I input the following "Password001" And I input the following "Password001" And I input the following "" And I input the following "" And I select the option "y" When I run the application Then The application should fail And I should see an error message containing "Invalid AWS credentials" Examples: |KeyID|KeySecret| |BADDATA|e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2| |AKIAIW6QO5LAD6KXBDUA|BADDATA| |BADDATA|BADDATA| Scenario Outline: User configures application with bad data and tests (overwrites config) Given I am going to run the program And A configuration exists And I specify the command "configure" And I select the option "y" And I input the following "Password001" And I input the following "Password001" And I input the following "" And I input the following "" And I select the option "y" When I run the application Then The application should fail And I should see an error message containing "Invalid AWS credentials" Examples: |KeyID|KeySecret| |BADDATA|e8L9wXKSByw66XUJmkGqKKHexMTXsB8SeEGJLRc2| |AKIAIW6QO5LAD6KXBDUA|BADDATA| |BADDATA|BADDATA|