1 module dmocks.call;
2 
3 public import dmocks.model;
4 public import dmocks.dynamic;
5 
6 import dmocks.arguments;
7 import dmocks.qualifiers;
8 
9 import std.array;
10 
11 /++
12 + This class represents a single method call on a mock object while in replay phase
13 + All information about the call is stored here
14 +/
15 class Call
16 {
17     MockId object;
18     string name;
19     string[] qualifiers;
20     Dynamic[] arguments;
21 
22     override string toString()
23     {
24         string arguments = (arguments is null) ? "(<unknown>)" : arguments.formatArguments;
25         return name ~ " "~ arguments ~ " " ~ qualifiers.join(" ");
26     }
27 }
28 
29 Call createCall(alias METHOD, ARGS...)(MockId object, string name, ARGS args)
30 {
31     auto ret = new Call;
32     ret.object = object;
33     ret.name = name;
34     ret.qualifiers = qualifiers!METHOD;
35     ret.arguments = arguments(args);
36     return ret;
37 }