My favorites | Sign in
Project Home Downloads Issues Source
Checkout   Browse   Changes    
 
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using NUnit.Framework;

namespace Konstruktor.Tests
{
[TestFixture]
sealed class ConstructorPrecendence
{
sealed class B
{}

sealed class Ambiguous
{
public Ambiguous(int a)
{
throw new NotImplementedException();
}

public Ambiguous(B b)
{
throw new NotImplementedException();
}
}

[Test, ExpectedException(typeof(ResolveException))]
public void ambiguous()
{
var b = new Builder();

using (var s = b.beginScope())
{
s.resolve<Ambiguous>();
}
}

sealed class InternalConstructor
{
internal InternalConstructor(B b)
{
}
}

[Test, ExpectedException(typeof(ResolveException))]
public void internalConstructor()
{
var b = new Builder();

using (var s = b.beginScope())
{
s.resolve<InternalConstructor>();
}
}

sealed class MoreArguments
{
public MoreArguments(B b)
{
throw new NotImplementedException();
}

public MoreArguments(B b, B c)
{
}
}

[Test]
public void moreArguments()
{
var b = new Builder();

using (var s = b.beginScope())
{
s.resolve<MoreArguments>();
}
}

#region Preferred by Attribute

sealed class Preferred
{
[PreferredConstructor]
public Preferred(B b)
{
}

public Preferred(B b, B c)
{
throw new NotImplementedException();
}
}

[Test]
public void preferred()
{
var b = new Builder();

using (var s = b.beginScope())
{
s.resolve<Preferred>();
}
}

#endregion

#region Preferred by Builder

sealed class PreferredByBuilder
{
public PreferredByBuilder(B b)
{

}

public PreferredByBuilder(B b, B c)
{
throw new NotImplementedException();
}
}


[Test]
public void preferredByBuilder()
{
var b = new Builder();

b.preferConstructor<PreferredByBuilder>(typeof(B));

using (var s = b.beginScope())
{
s.resolve<PreferredByBuilder>();
}
}

#endregion
}
}

Change log

r18 by paramatrix on Jun 2, 2010   Diff
new: Builder-configurable constructor
precendence
Go to: 
Project members, sign in to write a code review

Older revisions

r8 by paramatrix on Mar 26, 2010   Diff
renamed scope() to beginScope() and
createNestedScope() to
beginNestedScope()
r2 by paramatrix on Mar 25, 2010   Diff
initial checkin after isolation from
dependent projects
All revisions of this file

File info

Size: 2094 bytes, 136 lines
Powered by Google Project Hosting