mirage 1.3.6 → 2.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/Gemfile +7 -4
  2. data/VERSION +1 -1
  3. data/bin/mirage +2 -0
  4. data/features/client/clear.feature +38 -20
  5. data/features/client/peek.feature +11 -11
  6. data/features/client/save_and_revert.feature +14 -8
  7. data/features/client/set.feature +59 -13
  8. data/features/client/track.feature +5 -3
  9. data/features/server/clear.feature +59 -47
  10. data/features/server/logging.feature +2 -3
  11. data/features/server/peek.feature +12 -10
  12. data/features/server/prime.feature +15 -13
  13. data/features/server/response_templates.feature +9 -16
  14. data/features/server/save_and_revert.feature +11 -14
  15. data/features/server/set.feature +44 -17
  16. data/features/server/set_default_response.feature +19 -25
  17. data/features/server/set_with_a_delay.feature +3 -5
  18. data/features/server/set_with_a_pattern.feature +24 -29
  19. data/features/server/track_requests.feature +71 -0
  20. data/features/server/web_user_interface.feature +7 -8
  21. data/features/step_definitions/my_steps.rb +83 -28
  22. data/features/support/env.rb +0 -14
  23. data/lib/mirage.rb +3 -0
  24. data/lib/mirage/client.rb +48 -43
  25. data/lib/mirage/core.rb +65 -152
  26. data/lib/mirage/mock_response.rb +49 -0
  27. data/lib/mirage/mock_responses_collection.rb +109 -0
  28. data/lib/mirage/object.rb +5 -0
  29. data/lib/mirage/web.rb +37 -28
  30. data/lib/start_mirage.rb +27 -5
  31. data/lib/{view/mirage/index.xhtml → views/index.erb} +5 -5
  32. data/mirage.gemspec +7 -7
  33. metadata +57 -23
  34. data/features/client/get.feature +0 -46
  35. data/features/server/file_responses.feature +0 -8
  36. data/features/server/track.feature +0 -74
@@ -1,46 +0,0 @@
1
- Feature: the Mirage client provides a method for getting responses
2
- There is no need to escape any parameters before using the client api as this is done for you.
3
-
4
- Background:
5
- Given the following gems are required to run the Mirage client test code:
6
- """
7
- require 'rubygems'
8
- require 'rspec'
9
- require 'mirage'
10
- """
11
- And I post to 'http://localhost:7001/mirage/set/greeting' with parameters:
12
- | response | hello |
13
-
14
- Scenario: getting a response
15
- Given I run
16
- """
17
- Mirage::Client.new.get('greeting').should == 'hello'
18
- """
19
-
20
- Scenario: getting a response with parameters
21
- Given I run
22
- """
23
- Mirage::Client.new.get('greeting', :firstname => 'leon', :surname => 'davis').should == 'hello'
24
- """
25
- And I hit 'http://localhost:7001/mirage/track/1'
26
- Then 'firstname=leon&surname=davis' should be returned
27
-
28
- Scenario: getting a response with a request body
29
- Given I run
30
- """
31
- Mirage::Client.new.get('greeting','<greetingRequest></greetingRequest>').should == 'hello'
32
- """
33
- And I hit 'http://localhost:7001/mirage/track/1'
34
- Then '<greetingRequest></greetingRequest>' should be returned
35
-
36
- Scenario: getting a response that does not exist
37
- Given I run
38
- """
39
- begin
40
- Mirage::Client.new.get('response_that_does_not_exits').should == 'hello'
41
- fail("Error should have been thrown")
42
- rescue Exception => e
43
- e.is_a?(Mirage::ResponseNotFound).should == true
44
- end
45
- """
46
-
@@ -1,8 +0,0 @@
1
- Feature: Mirage can also be used to host files.
2
-
3
- Scenario: A file is set as a response
4
- Given I hit 'http://localhost:7001/mirage/set/some/location/download' with parameters:
5
- | response | README.md |
6
-
7
- When I hit 'http://localhost:7001/mirage/get/some/location/download'
8
- Then the response should be a file the same as 'README.md'
@@ -1,74 +0,0 @@
1
- Feature: After a response has been served from Mirage, the content of the request that triggered it can be retrieved. This is useful
2
- for testing that the correct information was sent to the endpoint.
3
-
4
- On setting a response, a unique id is returned which can be used to look up the last request made to get that response.
5
-
6
- If the the response is reset then the same id is returned in order to make it easier to keep track of.
7
-
8
- Responses hosted on the same endpoint but with a pattern are considered unique and so get their own ID.
9
-
10
- If the request body contains content this is stored. Otherwise it is the query string that is stored.
11
-
12
- If a response is 'peeked' this does not count as a request that should be stored.
13
-
14
- Background: There is a response already on Mirage
15
- Given I hit 'http://localhost:7001/mirage/set/greeting' with parameters:
16
- | response | Hello |
17
-
18
-
19
- Scenario: Tracking a response that was triggered by a request that had content in the body
20
- Given I hit 'http://localhost:7001/mirage/get/greeting' with request body:
21
- """
22
- Hello MockServer
23
- """
24
- When I hit 'http://localhost:7001/mirage/track/1'
25
- Then 'Hello MockServer' should be returned
26
-
27
-
28
- Scenario: Tracking a response that was triggered by a request with a query string
29
- Given I hit 'http://localhost:7001/mirage/get/greeting' with parameters:
30
- | surname | Davis |
31
- | firstname | Leon |
32
- When I hit 'http://localhost:7001/mirage/track/1'
33
- Then 'surname=Davis&firstname=Leon' should be returned
34
-
35
-
36
- Scenario: Tracking a response that has not been served yet
37
- Given I hit 'http://localhost:7001/mirage/track/1'
38
- Then a 404 should be returned
39
-
40
-
41
- Scenario: A response is peeked at
42
- Given I hit 'http://localhost:7001/mirage/get/greeting' with request body:
43
- """
44
- Hello
45
- """
46
- And I hit 'http://localhost:7001/mirage/peek/1'
47
- When I hit 'http://localhost:7001/mirage/track/1'
48
- Then 'Hello' should be returned
49
-
50
-
51
- Scenario: A default response and one for the same endpoint with a pattern are set
52
- When I hit 'http://localhost:7001/mirage/set/greeting' with parameters:
53
- | response | Hello who ever you are |
54
- Then '1' should be returned
55
-
56
- When I hit 'http://localhost:7001/mirage/set/greeting' with parameters:
57
- | response | Hello Leon |
58
- | pattern | Leon |
59
- Then '3' should be returned
60
-
61
- When I hit 'http://localhost:7001/mirage/get/greeting' with request body:
62
- """
63
- My name is Joel
64
- """
65
- And I hit 'http://localhost:7001/mirage/get/greeting' with request body:
66
- """
67
- My name is Leon
68
- """
69
- And I hit 'http://localhost:7001/mirage/track/1'
70
- Then 'My name is Joel' should be returned
71
- And I hit 'http://localhost:7001/mirage/track/3'
72
- Then 'My name is Leon' should be returned
73
-
74
-