Skip to content

Instantly share code, notes, and snippets.

@nadvolod
Created November 20, 2023 17:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nadvolod/dafa330947d3ed7b48e7fe0a2cb1f995 to your computer and use it in GitHub Desktop.
Save nadvolod/dafa330947d3ed7b48e7fe0a2cb1f995 to your computer and use it in GitHub Desktop.
package com.saucelabs.saucebindings.junit4.examples;
public class ConditionTester {
private boolean actionDone;
public boolean option1(boolean conditionA, boolean conditionB) {
if (!conditionA) {
actionDone = true; // Represents "Another action"
return actionDone;
}
if (conditionB) {
actionDone = true; // Represents "Do something"
} else {
actionDone = true; // Represents "Alternative action"
}
return actionDone;
}
public boolean option2(boolean conditionA, boolean conditionB) {
if (conditionA) {
if (conditionB) {
actionDone = true; // Represents "Do something"
} else {
actionDone = true; // Represents "Alternative action"
}
} else {
actionDone = true; // Represents "Another action"
}
return actionDone;
}
}
public class ConditionTesterTest {
private final ConditionTester tester = new ConditionTester();
@Test
public void testBothOptionsWithConditionATrueAndConditionBTrue() {
assertTrue(tester.option1(true, true));
assertTrue(tester.option2(true, true));
}
@Test
public void testBothOptionsWithConditionATrueAndConditionBFalse() {
assertTrue(tester.option1(true, false));
assertTrue(tester.option2(true, false));
}
@Test
public void testBothOptionsWithConditionAFalse() {
assertTrue(tester.option1(false, true));
assertTrue(tester.option2(false, true));
assertTrue(tester.option1(false, false));
assertTrue(tester.option2(false, false));
}
}
@SantjagoCorkez
Copy link

public class ConditionExample {
    protected boolean actionADone = false, actionB1Done = false, actionB2Done = false;

    public void option1(boolean conditionA, boolean conditionB) {
        if (!conditionA) {
            return;
        }
        actionADone = true;

        if (conditionB) {
            actionB1Done = true; // Represents "Do something"
        } else {
            actionB2Done = true; // Represents "Alternative action"
        }
    }
}
...
public class ConditionExampleTester {
    public void do_test() {
        ConditionExample unit = new ConditionExample();
        unit.option1(true, true);
        assertTrue(unit.actionADone);
        assertTrue(unit.actionB1Done);
        assertFalse(unit.actionB2Done);

        unit = new ConditionExample();
        unit.option1(false, true);
        assertFalse(unit.actionADone);
        assertFalse(unit.actionB1Done);
        assertFalse(unit.actionB2Done);

        unit = new ConditionExample();
        unit.option1(true, false);
        assertTrue(unit.actionADone);
        assertFalse(unit.actionB1Done);
        assertTrue(unit.actionB2Done);

        unit = new ConditionExample();
        unit.option1(false, false);
        assertFalse(unit.actionADone);
        assertFalse(unit.actionB1Done);
        assertFalse(unit.actionB2Done);
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment