forked from SolrNet/SolrNet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUnityFixture.cs
More file actions
116 lines (104 loc) · 4.24 KB
/
Copy pathUnityFixture.cs
File metadata and controls
116 lines (104 loc) · 4.24 KB
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
using System;
using System.Collections.Generic;
using System.Configuration;
using MbUnit.Framework;
using Microsoft.Practices.Unity;
using SolrNet;
using SolrNet.Exceptions;
using SolrNet.Impl;
using Unity.SolrNetIntegration.Config;
namespace Unity.SolrNetIntegration.Tests {
[TestFixture]
public class UnityFixture {
[Test]
public void ResolveSolrOperations() {
using (var container = SetupContainer()) {
var m = container.Resolve<ISolrOperations<Entity>>();
Assert.IsNotNull(m);
}
}
[Test]
public void ResolveAllISolrAbstractResponseParser()
{
using (var container = SetupContainer()) {
var m = container.ResolveAll(typeof(ISolrAbstractResponseParser<UnityFixture>));
Assert.IsNotEmpty(m);
}
}
[Test]
public void RegistersSolrConnectionWithAppConfigServerUrl() {
using (var container = SetupContainer()) {
var instanceKey = "entity" + typeof (SolrConnection);
var solrConnection = (SolrConnection) container.Resolve<ISolrConnection>(instanceKey);
Assert.AreEqual("http://localhost:8983/solr/entity", solrConnection.ServerURL);
}
}
[Test, ExpectedException(typeof (InvalidURLException))]
public void Should_throw_exception_for_invalid_protocol_on_url() {
var solrServers = new SolrServers {
new SolrServerElement {
Id = "test",
Url = "htp://localhost:8893",
DocumentType = typeof (Entity2).AssemblyQualifiedName,
}
};
using (var container = new UnityContainer()) {
new SolrNetContainerConfiguration().ConfigureContainer(solrServers, container);
container.Resolve<ISolrConnection>();
}
}
[Test, ExpectedException(typeof (InvalidURLException))]
public void Should_throw_exception_for_invalid_url() {
var solrServers = new SolrServers {
new SolrServerElement {
Id = "test",
Url = "http:/localhost:8893",
DocumentType = typeof (Entity2).AssemblyQualifiedName,
}
};
using (var container = new UnityContainer()) {
new SolrNetContainerConfiguration().ConfigureContainer(solrServers, container);
container.Resolve<ISolrConnection>();
}
}
[Test]
public void Container_has_ISolrFieldParser() {
using (var container = SetupContainer()) {
var parser = container.Resolve<ISolrFieldParser>();
Assert.IsNotNull(parser);
}
}
[Test]
public void Container_has_ISolrFieldSerializer() {
using (var container = SetupContainer()) {
container.Resolve<ISolrFieldSerializer>();
}
}
[Test]
public void Container_has_ISolrDocumentPropertyVisitor() {
using (var container = SetupContainer()) {
container.Resolve<ISolrDocumentPropertyVisitor>();
}
}
[Test]
public void DictionaryDocument_ResponseParser() {
using (var container = SetupContainer()) {
var parser = container.Resolve<ISolrDocumentResponseParser<Dictionary<string, object>>>();
Assert.IsInstanceOfType<SolrDictionaryDocumentResponseParser>(parser);
}
}
[Test]
public void DictionaryDocument_Serializer() {
using (var container = SetupContainer()) {
var serializer = container.Resolve<ISolrDocumentSerializer<Dictionary<string, object>>>();
Assert.IsInstanceOfType<SolrDictionarySerializer>(serializer);
}
}
internal static IUnityContainer SetupContainer() {
var solrConfig = (SolrConfigurationSection) ConfigurationManager.GetSection("solr");
var container = new UnityContainer();
new SolrNetContainerConfiguration().ConfigureContainer(solrConfig.SolrServers, container);
return container;
}
}
}