Michael Miller
4aaa8db5e2
Rename Arguments.empty to Arguments.none
2022-07-12 18:59:23 -06:00
Michael Miller
4b2b37477e
Remove unused methods
2022-07-12 18:04:55 -06:00
Michael Miller
d7ea969f55
Pretify stub and call output
...
Fix some tests.
2022-07-12 17:47:05 -06:00
Michael Miller
00c7141d95
Re-add with
modifier with constraint
...
Fixes `no_args` in DSL.
2022-07-12 10:56:49 -06:00
Michael Miller
694e2e6259
Initial implementation of have_received
2022-07-11 20:25:15 -06:00
Michael Miller
4f46c98a86
Rename with
method to avoid recursive splat and ambiguity
2022-07-11 20:24:51 -06:00
Michael Miller
ecab2dd37e
Upcast to AbstractArguments to avoid instantiating methods
...
This reduced compilation times when using a large amount of Arguments types.
2022-07-10 21:54:25 -06:00
Michael Miller
32a9bfd356
Add no_args
2022-07-10 18:51:58 -06:00
Michael Miller
b9eaefb424
Add docs
2022-07-10 18:33:56 -06:00
Michael Miller
9eb2946be6
Change empty args to reusable readonly instance
2022-07-10 17:51:05 -06:00
Michael Miller
29389f1dbf
Add indexer methods for captured arguments
2022-07-10 17:38:17 -06:00
Michael Miller
4aaed186c3
Add with
stub modifier
2022-07-10 17:31:13 -06:00
Michael Miller
cd177dd2ae
Implement ProcStub
2022-07-10 11:54:51 -06:00
Michael Miller
4d5004ab4f
Add ExceptionStub
2022-07-09 22:12:24 -06:00
Michael Miller
9c705bf888
Add MultiValueStub
2022-07-09 20:52:01 -06:00
Michael Miller
813983de4b
Implement and test DSL for class mocks and doubles
2022-07-07 19:09:18 -06:00
Michael Miller
77096b76e9
Allow StubbedType alongside Stubbable for allow()
2022-07-07 19:01:02 -06:00
Michael Miller
55b2ac9f05
Fix macro for class double name
2022-07-07 19:00:22 -06:00
Michael Miller
70391b2d31
Fix warnings from Crystal 1.5.0 regarding positional parameters
2022-07-07 18:10:21 -06:00
Michael Miller
f7147299ab
Add stub support to class methods on mocks
2022-07-04 20:19:13 -06:00
Michael Miller
c76ead4065
Auto stub class methods
2022-07-04 20:16:07 -06:00
Michael Miller
fb5f44ef10
Add 'new' and 'allocate' to reserved keywords
2022-07-04 20:06:26 -06:00
Michael Miller
22a37d38f9
Don't automatically extend StubbedType
...
Mocked module includes StubbedType, which doesn't pass along functionality to mocks.
2022-07-04 16:43:37 -06:00
Michael Miller
989086c4fc
Add method to clear recorded calls
2022-07-04 15:35:12 -06:00
Michael Miller
056d5892fa
Indicate class double/mock in stubbed name
2022-07-04 15:34:38 -06:00
Michael Miller
cecd2464de
Initial code for StubbedType
2022-07-03 13:40:29 -06:00
Michael Miller
20c9da75a8
Add missing dot after method receiver (self)
2022-06-29 22:02:27 -06:00
Michael Miller
c8ec0ad02a
Record calls on injected mocks
2022-06-28 23:36:24 -06:00
Michael Miller
8aed5027aa
Remove _spectator_calls method with filter
2022-06-28 23:02:46 -06:00
Michael Miller
3589f23475
Store calls to mocks and doubles
2022-06-28 22:54:08 -06:00
Michael Miller
c98edcec5d
Add methods for recording calls to stubs
2022-06-08 08:18:31 -06:00
Michael Miller
cb93f4eee0
Document mock modules
2022-06-04 18:21:08 -06:00
Michael Miller
effad28559
Better compiler error for wrong argument type passed to mock
2022-06-01 22:23:39 -06:00
Michael Miller
3f4216a271
Allow passing default value stubs to mock initialization
2022-06-01 22:04:18 -06:00
Michael Miller
b6083f0e09
Fix passing along mock body
2022-05-28 10:10:20 -06:00
Michael Miller
03754321b5
Fix existing mock DSL macros
...
Initial code for mock DSL.
2022-05-28 09:18:49 -06:00
Michael Miller
5132ce7329
Don't define method body for abstract stub method
...
Test inheriting an abstract class with mocks.
2022-05-24 19:25:22 -06:00
Michael Miller
ddaed636c4
Remove type resolution
...
The `resolve` macro method operates in the scope of `@type`, not where the macro method was called.
This is why types could not be found within the spec.
Change `define_subclass` to `define_subtype` and accept base type keyword.
2022-05-18 20:56:04 -06:00
Michael Miller
4f0e2f6e46
Fix clearing stubs for mocks
...
Prevent reverting initial defaults set by mock macro.
2022-05-15 16:21:05 -06:00
Michael Miller
a39b27387c
Add delete method to clear stubs for a mock
2022-05-15 16:19:55 -06:00
Michael Miller
c98442e0ed
Add functionality to clear stubs
2022-05-15 15:56:32 -06:00
Michael Miller
37c6db250d
Add ValueMockRegistry
...
Support injecting mock functionality into concrete structs (value types).
2022-05-15 12:34:50 -06:00
Michael Miller
ac03bd439b
Address Ameba issues
2022-05-15 11:06:00 -06:00
Michael Miller
1adcf74c3f
Fix stub_type when used on a sub-type
...
previous_def should only be used if the type being stubbed matches the type stub methods are defined in.
Re-enable tests for define_subclass mocking.
2022-05-15 10:59:44 -06:00
Michael Miller
86b49dc20e
Add mock registry fetch method
...
Solves the issue of pre-populating a mock with stubs.
2022-05-15 00:36:29 -06:00
Michael Miller
7923eb3ad0
Fix detection of nullable return type from stubbed method
2022-05-15 00:19:03 -06:00
Michael Miller
380d721fad
Add ReferenceMockRegistry
2022-05-14 23:31:57 -06:00
Michael Miller
0704fd2a48
Adjust evaluation order of change matcher expressions
...
Handles reference types better and matches RSpec more closely.
2022-05-14 23:30:15 -06:00
Michael Miller
739629ef9d
Reintroduce nil type check for stub value cast
2022-04-30 12:10:02 -06:00
Michael Miller
9817b2948e
Add mock inject macro
...
Debugging some type resolution issues.
2022-04-30 11:40:54 -06:00