1- //package io.arex.inst.runtime.match;
2- //
3- //import io.arex.agent.bootstrap.model.ArexMocker;
4- //import io.arex.agent.bootstrap.model.MockCategoryType;
5- //import io.arex.agent.bootstrap.model.MockStrategyEnum;
6- //import io.arex.agent.bootstrap.model.Mocker;
7- //import io.arex.inst.runtime.match.strategy.AccurateMatchStrategy;
8- //import io.arex.inst.runtime.util.MockUtils;
9- //import org.junit.jupiter.api.AfterAll;
10- //import org.junit.jupiter.api.BeforeAll;
11- //import org.junit.jupiter.api.Test;
12- //import org.junit.jupiter.params.ParameterizedTest;
13- //import org.junit.jupiter.params.provider.Arguments;
14- //import org.junit.jupiter.params.provider.MethodSource;
15- //import org.mockito.Mockito;
16- //
17- //import java.util.ArrayList;
18- //import java.util.List;
19- //import java.util.function.Predicate;
20- //import java.util.function.Supplier;
21- //import java.util.stream.Stream;
22- //
23- //import static org.junit.jupiter.api.Assertions.*;
24- //import static org.junit.jupiter.params.provider.Arguments.arguments;
25- //
26- //class AccurateMatchStrategyTest {
27- //
28- // static AccurateMatchStrategy accurateMatchStrategy;
29- //
30- // @BeforeAll
31- // static void setUp() {
32- // accurateMatchStrategy = new AccurateMatchStrategy();
33- // Mockito.mockStatic(MockUtils.class);
34- // }
35- //
36- // @AfterAll
37- // static void tearDown() {
38- // accurateMatchStrategy = null;
39- // Mockito.clearAllCaches();
40- // }
41- //
42- // @ParameterizedTest
43- // @MethodSource("processCase")
44- // void process(MatchStrategyContext context, Predicate<MatchStrategyContext> asserts) {
45- // accurateMatchStrategy.process(context);
46- // asserts.test(context);
47- // }
48- //
49- // static Stream<Arguments> processCase() {
50- // Supplier<MatchStrategyContext> contextSupplier1 = () -> {
51- // ArexMocker mocker = new ArexMocker();
52- // mocker.setTargetResponse(new Mocker.Target());
53- // mocker.setTargetRequest(new Mocker.Target());
54- // mocker.setCategoryType(MockCategoryType.DYNAMIC_CLASS);
55- // List<Mocker> mergeReplayList = new ArrayList<>();
56- // mergeReplayList.add(new ArexMocker());
57- // return new MatchStrategyContext(mocker, mergeReplayList, MockStrategyEnum.FIND_LAST);
58- // };
59- // Supplier<MatchStrategyContext> contextSupplier2 = () -> {
60- // MatchStrategyContext context = contextSupplier1.get();
61- // context.getReplayList().get(0).setMatched(true);
62- // context.setMockStrategy(MockStrategyEnum.STRICT_MATCH);
63- // return context;
64- // };
65- // Supplier<MatchStrategyContext> contextSupplier3 = () -> {
66- // MatchStrategyContext context = contextSupplier1.get();
67- // context.getReplayList().add(new ArexMocker());
68- // return context;
69- // };
70- // Supplier<MatchStrategyContext> contextSupplier4 = () -> {
71- // MatchStrategyContext context = contextSupplier1.get();
72- // context.getReplayList().get(0).setMethodSignatureHash(1);
73- // context.setMockStrategy(MockStrategyEnum.STRICT_MATCH);
74- // return context;
75- // };
76- //
77- // Predicate<MatchStrategyContext> asserts1 = context -> !context.isInterrupt();
78- // Predicate<MatchStrategyContext> asserts2 = MatchStrategyContext::isInterrupt;
79- //
80- // return Stream.of(
81- // arguments(contextSupplier1.get(), asserts1),
82- // arguments(contextSupplier2.get(), asserts2),
83- // arguments(contextSupplier3.get(), asserts1),
84- // arguments(contextSupplier4.get(), asserts2)
85- // );
86- // }
87- //
88- // @Test
89- // void internalCheck() {
90- // ArexMocker mocker = new ArexMocker();
91- // mocker.setTargetRequest(new Mocker.Target());
92- // assertFalse(accurateMatchStrategy.internalCheck(new MatchStrategyContext(mocker, null, null)));
93- // }
94- //}
1+ package io .arex .inst .runtime .match ;
2+
3+ import io .arex .agent .bootstrap .model .ArexMocker ;
4+ import io .arex .agent .bootstrap .model .MockCategoryType ;
5+ import io .arex .agent .bootstrap .model .MockStrategyEnum ;
6+ import io .arex .agent .bootstrap .model .Mocker ;
7+ import io .arex .inst .runtime .match .strategy .AccurateMatchStrategy ;
8+ import io .arex .inst .runtime .util .MockUtils ;
9+ import org .junit .jupiter .api .AfterAll ;
10+ import org .junit .jupiter .api .BeforeAll ;
11+ import org .junit .jupiter .api .Test ;
12+ import org .junit .jupiter .params .ParameterizedTest ;
13+ import org .junit .jupiter .params .provider .Arguments ;
14+ import org .junit .jupiter .params .provider .MethodSource ;
15+ import org .mockito .Mockito ;
16+
17+ import java .util .ArrayList ;
18+ import java .util .List ;
19+ import java .util .function .Predicate ;
20+ import java .util .function .Supplier ;
21+ import java .util .stream .Stream ;
22+
23+ import static org .junit .jupiter .api .Assertions .*;
24+ import static org .junit .jupiter .params .provider .Arguments .arguments ;
25+
26+ class AccurateMatchStrategyTest {
27+
28+ static AccurateMatchStrategy accurateMatchStrategy ;
29+
30+ @ BeforeAll
31+ static void setUp () {
32+ accurateMatchStrategy = new AccurateMatchStrategy ();
33+ Mockito .mockStatic (MockUtils .class );
34+ }
35+
36+ @ AfterAll
37+ static void tearDown () {
38+ accurateMatchStrategy = null ;
39+ Mockito .clearAllCaches ();
40+ }
41+
42+ @ ParameterizedTest
43+ @ MethodSource ("processCase" )
44+ void process (MatchStrategyContext context , Predicate <MatchStrategyContext > asserts ) {
45+ accurateMatchStrategy .process (context );
46+ asserts .test (context );
47+ }
48+
49+ static Stream <Arguments > processCase () {
50+ Supplier <MatchStrategyContext > contextSupplier1 = () -> {
51+ ArexMocker mocker = new ArexMocker (MockCategoryType .DYNAMIC_CLASS );
52+ mocker .setOperationName ("mock" );
53+ mocker .setTargetRequest (new Mocker .Target ());
54+ mocker .getTargetRequest ().setBody ("mock" );
55+ mocker .setTargetResponse (new Mocker .Target ());
56+ mocker .setAccurateMatchKey (MatchKeyFactory .INSTANCE .getAccurateMatchKey (mocker ));
57+ List <Mocker > mergeReplayList = new ArrayList <>();
58+ mergeReplayList .add (mocker );
59+ MatchStrategyContext context = new MatchStrategyContext (mocker , MockStrategyEnum .FIND_LAST );
60+ context .setRecordList (mergeReplayList );
61+ return context ;
62+ };
63+ Supplier <MatchStrategyContext > contextSupplier2 = () -> {
64+ MatchStrategyContext context = contextSupplier1 .get ();
65+ context .getRecordList ().get (0 ).setMatched (true );
66+ context .setMockStrategy (MockStrategyEnum .STRICT_MATCH );
67+ return context ;
68+ };
69+ Supplier <MatchStrategyContext > contextSupplier3 = () -> {
70+ MatchStrategyContext context = contextSupplier1 .get ();
71+ context .getRecordList ().add (new ArexMocker ());
72+ return context ;
73+ };
74+ Supplier <MatchStrategyContext > contextSupplier4 = () -> {
75+ MatchStrategyContext context = contextSupplier1 .get ();
76+ context .getRecordList ().get (0 ).setFuzzyMatchKey (1 );
77+ context .setMockStrategy (MockStrategyEnum .STRICT_MATCH );
78+ return context ;
79+ };
80+ Supplier <MatchStrategyContext > multiMatchResult = () -> {
81+ MatchStrategyContext context = contextSupplier1 .get ();
82+ ArexMocker mocker = new ArexMocker (MockCategoryType .DYNAMIC_CLASS );
83+ mocker .setOperationName ("mock" );
84+ mocker .setTargetRequest (new Mocker .Target ());
85+ mocker .getTargetRequest ().setBody ("mock" );
86+ mocker .setTargetResponse (new Mocker .Target ());
87+ mocker .setAccurateMatchKey (MatchKeyFactory .INSTANCE .getAccurateMatchKey (mocker ));
88+ context .getRecordList ().add (mocker );
89+ return context ;
90+ };
91+
92+ Predicate <MatchStrategyContext > asserts1 = context -> !context .isInterrupt ();
93+ Predicate <MatchStrategyContext > asserts2 = MatchStrategyContext ::isInterrupt ;
94+
95+ return Stream .of (
96+ arguments (contextSupplier1 .get (), asserts1 ),
97+ arguments (contextSupplier2 .get (), asserts2 ),
98+ arguments (contextSupplier3 .get (), asserts1 ),
99+ arguments (contextSupplier4 .get (), asserts2 ),
100+ arguments (multiMatchResult .get (), asserts2 )
101+ );
102+ }
103+
104+ @ Test
105+ void internalCheck () {
106+ ArexMocker mocker = new ArexMocker ();
107+ mocker .setTargetRequest (new Mocker .Target ());
108+ assertFalse (accurateMatchStrategy .internalCheck (new MatchStrategyContext (mocker , null )));
109+ }
110+ }
0 commit comments