-
-
Notifications
You must be signed in to change notification settings - Fork 802
/
PropertiesFixture.cs
95 lines (70 loc) · 1.97 KB
/
PropertiesFixture.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xunit;
using System.Linq.Expressions;
namespace Moq.Tests
{
public class PropertiesFixture
{
public interface IFoo
{
IIndexedFoo Indexed { get; set; }
}
public interface IIndexedFoo
{
string this[int key] { get; set; }
string this[int key1, string key2, bool key3, DateTime key4] { get; set; }
IBar this[int key1, string key2, DateTime key4] { get; set; }
}
public interface IBar
{
string Value { get; set; }
}
[Fact]
public void ShouldSupportMultipleIndexerGettersInFluentMock()
{
var foo = new Mock<IFoo>();
foo.SetupGet(x => x.Indexed[It.IsAny<int>(), "foo", It.IsAny<DateTime>()].Value).Returns("bar");
var result = foo.Object.Indexed[1, "foo", DateTime.Now].Value;
Assert.Equal("bar", result);
}
[Fact]
public void ShouldSupportMultipleIndexerGetters()
{
var foo = new Mock<IIndexedFoo>();
foo.SetupGet(x => x[It.IsAny<int>(), "foo", true, It.IsAny<DateTime>()]).Returns("bar");
var result = foo.Object[1, "foo", true, DateTime.Now];
Assert.Equal("bar", result);
}
[Fact]
public void ShouldSetIndexer()
{
var foo = new Mock<IIndexedFoo>(MockBehavior.Strict);
foo.SetupSet(f => f[0] = "foo");
foo.Object[0] = "foo";
}
[Fact]
public void ShouldSetIndexerWithValueMatcher()
{
var foo = new Mock<IIndexedFoo>(MockBehavior.Strict);
foo.SetupSet(f => f[0] = It.IsAny<string>());
foo.Object[0] = "foo";
}
[Fact(Skip = "Not supported for now")]
public void ShouldSetIndexerWithIndexMatcher()
{
var foo = new Mock<IIndexedFoo>(MockBehavior.Strict);
foo.SetupSet(f => f[It.IsAny<int>()] = "foo");
foo.Object[18] = "foo";
}
[Fact(Skip = "Not supported for now")]
public void ShouldSetIndexerWithBothMatcher()
{
var foo = new Mock<IIndexedFoo>(MockBehavior.Strict);
foo.SetupSet(f => f[It.IsAny<int>()] = It.IsAny<string>());
foo.Object[18] = "foo";
}
}
}