mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-06-04 16:14:20 +00:00
deps: Refactor dependencies (#3224)
* remove spring dep move junit, logging, mockito under dep mgmt * upgrade anti-corruption-layer deps * async method invocation * balking, bloc * bridge to bytecode * caching * callback - cqrs * component - health check * hexagonal - metadata mapping * rest of the patterns * remove checkstyle, take spotless into use
This commit is contained in:
@@ -38,13 +38,13 @@ import lombok.extern.slf4j.Slf4j;
|
||||
*
|
||||
* <p>Expressions can be evaluated using prefix, infix or postfix notations This sample uses
|
||||
* postfix, where operator comes after the operands.
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
public class App {
|
||||
|
||||
/**
|
||||
* Program entry point.
|
||||
*
|
||||
* @param args program arguments
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
@@ -64,8 +64,10 @@ public class App {
|
||||
// the stack
|
||||
var rightExpression = stack.pop();
|
||||
var leftExpression = stack.pop();
|
||||
LOGGER.info("popped from stack left: {} right: {}",
|
||||
leftExpression.interpret(), rightExpression.interpret());
|
||||
LOGGER.info(
|
||||
"popped from stack left: {} right: {}",
|
||||
leftExpression.interpret(),
|
||||
rightExpression.interpret());
|
||||
var operator = getOperatorInstance(s, leftExpression, rightExpression);
|
||||
LOGGER.info("operator: {}", operator);
|
||||
var result = operator.interpret();
|
||||
@@ -86,6 +88,7 @@ public class App {
|
||||
|
||||
/**
|
||||
* Checks whether the input parameter is an operator.
|
||||
*
|
||||
* @param s input string
|
||||
* @return true if the input parameter is an operator
|
||||
*/
|
||||
@@ -95,6 +98,7 @@ public class App {
|
||||
|
||||
/**
|
||||
* Returns correct expression based on the parameters.
|
||||
*
|
||||
* @param s input string
|
||||
* @param left expression
|
||||
* @param right expression
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
/**
|
||||
* Expression.
|
||||
*/
|
||||
/** Expression. */
|
||||
public abstract class Expression {
|
||||
|
||||
public abstract int interpret();
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
/**
|
||||
* MinusExpression.
|
||||
*/
|
||||
/** MinusExpression. */
|
||||
public class MinusExpression extends Expression {
|
||||
|
||||
private final Expression leftExpression;
|
||||
@@ -46,5 +44,4 @@ public class MinusExpression extends Expression {
|
||||
public String toString() {
|
||||
return "-";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
/**
|
||||
* MultiplyExpression.
|
||||
*/
|
||||
/** MultiplyExpression. */
|
||||
public class MultiplyExpression extends Expression {
|
||||
|
||||
private final Expression leftExpression;
|
||||
@@ -46,5 +44,4 @@ public class MultiplyExpression extends Expression {
|
||||
public String toString() {
|
||||
return "*";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
/**
|
||||
* NumberExpression.
|
||||
*/
|
||||
/** NumberExpression. */
|
||||
public class NumberExpression extends Expression {
|
||||
|
||||
private final int number;
|
||||
|
||||
@@ -24,9 +24,7 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
/**
|
||||
* PlusExpression.
|
||||
*/
|
||||
/** PlusExpression. */
|
||||
public class PlusExpression extends Expression {
|
||||
|
||||
private final Expression leftExpression;
|
||||
|
||||
@@ -24,17 +24,15 @@
|
||||
*/
|
||||
package com.iluwatar.interpreter;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
|
||||
/**
|
||||
* Application test
|
||||
*/
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** Application test */
|
||||
class AppTest {
|
||||
|
||||
@Test
|
||||
void shouldExecuteApplicationWithoutException() {
|
||||
assertDoesNotThrow(() -> App.main(new String[]{}));
|
||||
assertDoesNotThrow(() -> App.main(new String[] {}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,19 +54,15 @@ public abstract class ExpressionTest<E extends Expression> {
|
||||
final var testData = new ArrayList<Arguments>();
|
||||
for (var i = -10; i < 10; i++) {
|
||||
for (var j = -10; j < 10; j++) {
|
||||
testData.add(Arguments.of(
|
||||
new NumberExpression(i),
|
||||
new NumberExpression(j),
|
||||
resultCalc.applyAsInt(i, j)
|
||||
));
|
||||
testData.add(
|
||||
Arguments.of(
|
||||
new NumberExpression(i), new NumberExpression(j), resultCalc.applyAsInt(i, j)));
|
||||
}
|
||||
}
|
||||
return testData.stream();
|
||||
}
|
||||
|
||||
/**
|
||||
* The expected {@link E#toString()} response
|
||||
*/
|
||||
/** The expected {@link E#toString()} response */
|
||||
private final String expectedToString;
|
||||
|
||||
/**
|
||||
@@ -78,11 +74,11 @@ public abstract class ExpressionTest<E extends Expression> {
|
||||
* Create a new test instance with the given parameters and expected results
|
||||
*
|
||||
* @param expectedToString The expected {@link E#toString()} response
|
||||
* @param factory Factory, used to create a new test object instance
|
||||
* @param factory Factory, used to create a new test object instance
|
||||
*/
|
||||
ExpressionTest(final String expectedToString,
|
||||
final BiFunction<NumberExpression, NumberExpression, E> factory
|
||||
) {
|
||||
ExpressionTest(
|
||||
final String expectedToString,
|
||||
final BiFunction<NumberExpression, NumberExpression, E> factory) {
|
||||
this.expectedToString = expectedToString;
|
||||
this.factory = factory;
|
||||
}
|
||||
@@ -94,9 +90,7 @@ public abstract class ExpressionTest<E extends Expression> {
|
||||
*/
|
||||
public abstract Stream<Arguments> expressionProvider();
|
||||
|
||||
/**
|
||||
* Verify if the expression calculates the correct result when calling {@link E#interpret()}
|
||||
*/
|
||||
/** Verify if the expression calculates the correct result when calling {@link E#interpret()} */
|
||||
@ParameterizedTest
|
||||
@MethodSource("expressionProvider")
|
||||
void testInterpret(NumberExpression first, NumberExpression second, int result) {
|
||||
@@ -105,9 +99,7 @@ public abstract class ExpressionTest<E extends Expression> {
|
||||
assertEquals(result, expression.interpret());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if the expression has the expected {@link E#toString()} value
|
||||
*/
|
||||
/** Verify if the expression has the expected {@link E#toString()} value */
|
||||
@ParameterizedTest
|
||||
@MethodSource("expressionProvider")
|
||||
void testToString(NumberExpression first, NumberExpression second) {
|
||||
|
||||
@@ -27,10 +27,7 @@ package com.iluwatar.interpreter;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
|
||||
/**
|
||||
* MinusExpressionTest
|
||||
*
|
||||
*/
|
||||
/** MinusExpressionTest */
|
||||
class MinusExpressionTest extends ExpressionTest<MinusExpression> {
|
||||
|
||||
/**
|
||||
@@ -43,11 +40,8 @@ class MinusExpressionTest extends ExpressionTest<MinusExpression> {
|
||||
return prepareParameters((f, s) -> f - s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new test instance using the given test parameters and expected result
|
||||
*/
|
||||
/** Create a new test instance using the given test parameters and expected result */
|
||||
public MinusExpressionTest() {
|
||||
super("-", MinusExpression::new);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,7 @@ package com.iluwatar.interpreter;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
|
||||
/**
|
||||
* MultiplyExpressionTest
|
||||
*
|
||||
*/
|
||||
/** MultiplyExpressionTest */
|
||||
class MultiplyExpressionTest extends ExpressionTest<MultiplyExpression> {
|
||||
|
||||
/**
|
||||
@@ -43,11 +40,8 @@ class MultiplyExpressionTest extends ExpressionTest<MultiplyExpression> {
|
||||
return prepareParameters((f, s) -> f * s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new test instance using the given test parameters and expected result
|
||||
*/
|
||||
/** Create a new test instance using the given test parameters and expected result */
|
||||
public MultiplyExpressionTest() {
|
||||
super("*", MultiplyExpression::new);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,10 +31,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
/**
|
||||
* NumberExpressionTest
|
||||
*
|
||||
*/
|
||||
/** NumberExpressionTest */
|
||||
class NumberExpressionTest extends ExpressionTest<NumberExpression> {
|
||||
|
||||
/**
|
||||
@@ -47,9 +44,7 @@ class NumberExpressionTest extends ExpressionTest<NumberExpression> {
|
||||
return prepareParameters((f, s) -> f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new test instance using the given test parameters and expected result
|
||||
*/
|
||||
/** Create a new test instance using the given test parameters and expected result */
|
||||
public NumberExpressionTest() {
|
||||
super("number", (f, s) -> f);
|
||||
}
|
||||
@@ -65,5 +60,4 @@ class NumberExpressionTest extends ExpressionTest<NumberExpression> {
|
||||
final var numberExpression = new NumberExpression(testStringValue);
|
||||
assertEquals(expectedValue, numberExpression.interpret());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,7 @@ package com.iluwatar.interpreter;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
|
||||
/**
|
||||
* PlusExpressionTest
|
||||
*
|
||||
*/
|
||||
/** PlusExpressionTest */
|
||||
class PlusExpressionTest extends ExpressionTest<PlusExpression> {
|
||||
|
||||
/**
|
||||
@@ -43,11 +40,8 @@ class PlusExpressionTest extends ExpressionTest<PlusExpression> {
|
||||
return prepareParameters(Integer::sum);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new test instance using the given test parameters and expected result
|
||||
*/
|
||||
/** Create a new test instance using the given test parameters and expected result */
|
||||
public PlusExpressionTest() {
|
||||
super("+", PlusExpression::new);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user