Jagger
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
JHttpUserScenario.java
Go to the documentation of this file.
1 package com.griddynamics.jagger.invoker.scenario;
2 
3 import java.util.ArrayList;
4 import java.util.List;
5 
6 import static java.lang.String.format;
7 
19 public class JHttpUserScenario {
20  private Integer stepsCounter = 0;
21  private final String scenarioId;
22  private final String scenarioDisplayName;
23  private List<JHttpUserScenarioStep> userScenarioSteps = new ArrayList<>();
24  private JHttpScenarioGlobalContext scenarioGlobalContext;
25 
26  public JHttpUserScenario(String scenarioId, String scenarioDisplayName) {
27  this.scenarioId = scenarioId;
28  this.scenarioDisplayName = scenarioDisplayName;
29  }
30 
32  this.scenarioGlobalContext = scenarioGlobalContext;
33  return this;
34  }
35 
36  public JHttpUserScenario addStep (JHttpUserScenarioStep userScenarioStep) {
37  if (!isStepIdUnique(userScenarioStep.getStepId())) {
38  throw new IllegalArgumentException(format("Step id '%s' is not unique!", userScenarioStep.getStepId()));
39  }
40  stepsCounter++;
41  userScenarioStep.setStepNumber(stepsCounter);
42  userScenarioSteps.add(userScenarioStep);
43  return this;
44  }
45 
46  private boolean isStepIdUnique(String id) {
47  return userScenarioSteps.stream().map(JHttpUserScenarioStep::getStepId).noneMatch(stepId -> stepId.equals(id));
48  }
49 
50  public String getScenarioId() {
51  return scenarioId;
52  }
53 
54  public String getScenarioDisplayName() {
55  return scenarioDisplayName;
56  }
57 
58  public List<JHttpUserScenarioStep> getUserScenarioSteps() {
59  return userScenarioSteps;
60  }
61 
63  return userScenarioSteps.get(index);
64  }
65 
67  return scenarioGlobalContext;
68  }
69 }