summaryrefslogtreecommitdiff
path: root/deps/Unity/extras/bdd/test
diff options
context:
space:
mode:
Diffstat (limited to 'deps/Unity/extras/bdd/test')
-rw-r--r--deps/Unity/extras/bdd/test/meson.build9
-rw-r--r--deps/Unity/extras/bdd/test/test_bdd.c128
2 files changed, 137 insertions, 0 deletions
diff --git a/deps/Unity/extras/bdd/test/meson.build b/deps/Unity/extras/bdd/test/meson.build
new file mode 100644
index 0000000..fcdafff
--- /dev/null
+++ b/deps/Unity/extras/bdd/test/meson.build
@@ -0,0 +1,9 @@
+project('BDD Tester', 'c')
+
+# Add Unity as a dependency
+unity_dep = dependency('unity')
+
+# Define your source files
+sources = files('test_bdd.c')
+
+executable('tester', sources, dependencies : unity_dep)
diff --git a/deps/Unity/extras/bdd/test/test_bdd.c b/deps/Unity/extras/bdd/test/test_bdd.c
new file mode 100644
index 0000000..4f41585
--- /dev/null
+++ b/deps/Unity/extras/bdd/test/test_bdd.c
@@ -0,0 +1,128 @@
+/* ==========================================
+ * Unity Project - A Test Framework for C
+ * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
+ * [Released under MIT License. Please refer to license.txt for details]
+ * ========================================== */
+
+#include "unity.h"
+#include "unity_bdd.h"
+
+void test_bdd_logic_test(void) {
+ GIVEN("a valid statement is passed")
+ {
+ // Set up the context
+ bool givenExecuted = true;
+
+ WHEN("a statement is true")
+ {
+ // Perform the login action
+ bool whenExecuted = true;
+
+ THEN("we validate everything was worked")
+ {
+ // Check the expected outcome
+ bool thenExecuted = true;
+
+ TEST_ASSERT_TRUE(givenExecuted);
+ TEST_ASSERT_TRUE(whenExecuted);
+ TEST_ASSERT_TRUE(thenExecuted);
+ }
+ }
+ }
+} // end of case
+
+void test_bdd_user_account(void) {
+ GIVEN("a user's account with sufficient balance")
+ {
+ // Set up the context
+ float accountBalance = 500.0;
+ float withdrawalAmount = 200.0;
+
+ WHEN("the user requests a withdrawal of $200")
+ {
+ // Perform the withdrawal action
+ if (accountBalance >= withdrawalAmount)
+ {
+ accountBalance -= withdrawalAmount;
+ } // end if
+ THEN("the withdrawal amount should be deducted from the account balance")
+ {
+ // Check the expected outcome
+
+ // Simulate the scenario
+ float compareBalance = 500.0;
+ TEST_ASSERT_LESS_THAN_FLOAT(accountBalance, compareBalance);
+ }
+ }
+ }
+} // end of case
+
+void test_bdd_empty_cart(void) {
+ GIVEN("a user with an empty shopping cart")
+ {
+ // Set up the context
+ int cartItemCount = 0;
+
+ WHEN("the user adds a product to the cart")
+ {
+ // Perform the action of adding a product
+
+ THEN("the cart item count should increase by 1")
+ {
+ // Check the expected outcome
+ cartItemCount++;
+
+ TEST_ASSERT_EQUAL_INT(cartItemCount, 1);
+ }
+ }
+ }
+} // end of case
+
+void test_bdd_valid_login(void) {
+ GIVEN("a registered user with valid credentials")
+ {
+ // Set up the context
+ const char* validUsername = "user123";
+ const char* validPassword = "pass456";
+
+ WHEN("the user provides correct username and password")
+ {
+ // Perform the action of user login
+ const char* inputUsername = "user123";
+ const char* inputPassword = "pass456";
+
+ THEN("the login should be successful")
+ {
+ // Check the expected outcome
+ // Simulate login validation
+ TEST_ASSERT_EQUAL_STRING(inputUsername, validUsername);
+ TEST_ASSERT_EQUAL_STRING(inputPassword, validPassword);
+ }
+ }
+
+ WHEN("the user provides incorrect password")
+ {
+ // Perform the action of user login
+ const char* inputUsername = "user123";
+ const char* inputPassword = "wrongpass";
+
+ THEN("the login should fail with an error message")
+ {
+ // Check the expected outcome
+ // Simulate login validation
+ TEST_ASSERT_EQUAL_STRING(inputUsername, validUsername);
+ // TEST_ASSERT_NOT_EQUAL_STRING(inputPassword, validPassword);
+ }
+ }
+ }
+} // end of case
+
+int main(void)
+{
+ UnityBegin("test_bdd.c");
+ RUN_TEST(test_bdd_logic_test);
+ RUN_TEST(test_bdd_user_account);
+ RUN_TEST(test_bdd_empty_cart);
+ RUN_TEST(test_bdd_valid_login);
+ return UnityEnd();
+}