Skip to content

Commit 0935f46

Browse files
committed
Issue #36: Don't override settings in the NHibernate config with default settings from the Fluent config
1 parent 8ddda12 commit 0935f46

File tree

2 files changed

+662
-620
lines changed

2 files changed

+662
-620
lines changed
Lines changed: 207 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -1,189 +1,208 @@
1-
using FluentNHibernate.Cfg.Db;
2-
using NHibernate.Cfg;
3-
using NUnit.Framework;
4-
5-
namespace FluentNHibernate.Testing.Cfg.Db
6-
{
7-
[TestFixture]
8-
public class PersistenceConfigurationTester
9-
{
10-
#region Test Setup
11-
private ConfigTester _config;
12-
private Configuration _nhibConfig;
13-
14-
[SetUp]
15-
public void SetUp()
16-
{
17-
_nhibConfig = null;
18-
_config = new ConfigTester();
19-
}
20-
21-
public string ValueOf(string key)
22-
{
23-
if( _nhibConfig == null )
24-
{
25-
_nhibConfig = new Configuration();
26-
_config.ConfigureProperties(_nhibConfig);
27-
}
28-
29-
return _nhibConfig.GetProperty(key);
30-
}
31-
#endregion
32-
33-
[Test]
34-
public void Setting_raw_values_should_populate_dictionary()
35-
{
36-
_config.Raw("TESTKEY", "TESTVALUE");
37-
38-
ValueOf("TESTKEY").ShouldEqual("TESTVALUE");
39-
}
40-
41-
[Test]
42-
public void Dialect_should_set_both_old_and_new_dialect_keys()
43-
{
44-
_config.Dialect("foo");
45-
46-
ValueOf("dialect").ShouldEqual("foo");
47-
ValueOf("hibernate.dialect").ShouldEqual("foo");
48-
}
49-
50-
[Test]
51-
public void Default_Schema_should_be_set_to_schema_name()
52-
{
53-
_config.DefaultSchema("foo");
54-
ValueOf("default_schema").ShouldEqual("foo");
55-
}
56-
57-
[Test]
58-
public void UseOuterJoin_should_set_value_to_const_true()
59-
{
60-
_config.UseOuterJoin();
61-
ValueOf("use_outer_join").ShouldEqual("true");
62-
}
63-
64-
[Test]
65-
public void Max_Fetch_Depth_should_set_property_value()
66-
{
67-
_config.MaxFetchDepth(2);
68-
ValueOf("max_fetch_depth").ShouldEqual("2");
69-
}
70-
71-
[Test]
72-
public void Use_Reflection_Optimizer_should_set_value_to_const_true()
73-
{
74-
_config.UseReflectionOptimizer();
75-
ValueOf("use_reflection_optimizer").ShouldEqual("true");
76-
77-
}
78-
79-
[Test]
80-
public void Provider_Class_should_set_property_value()
81-
{
82-
_config.Cache(c => c
83-
.ProviderClass("foo"));
84-
ValueOf("cache.provider_class").ShouldEqual("foo");
85-
86-
}
87-
88-
[Test]
89-
public void Use_Minimal_Puts_should_set_value_to_const_true()
90-
{
91-
_config.Cache(c => c
92-
.UseMinimalPuts());
93-
ValueOf("cache.use_minimal_puts").ShouldEqual("true");
94-
}
95-
96-
[Test]
97-
public void Use_Query_Cache_should_set_value_to_const_true()
98-
{
99-
_config.Cache(c => c
100-
.UseQueryCache());
101-
ValueOf("cache.use_query_cache").ShouldEqual("true");
102-
}
103-
104-
[Test]
105-
public void Query_Cache_Factory_should_set_property_value()
106-
{
107-
_config.Cache(c => c
108-
.QueryCacheFactory("foo"));
109-
ValueOf("cache.query_cache_factory").ShouldEqual("foo");
110-
}
111-
112-
[Test]
113-
public void Region_Prefix_should_set_property_value()
114-
{
115-
_config.Cache(c => c
116-
.RegionPrefix("foo"));
117-
ValueOf("cache.region_prefix").ShouldEqual("foo");
118-
}
119-
120-
[Test]
121-
public void Query_Substitutions_should_set_property_value()
122-
{
123-
_config.QuerySubstitutions("foo");
124-
ValueOf("query.substitutions").ShouldEqual("foo");
125-
}
126-
127-
[Test]
128-
public void Show_Sql_should_set_value_to_const_true()
129-
{
130-
_config.ShowSql();
131-
ValueOf("show_sql").ShouldEqual("true");
132-
}
133-
134-
[Test]
135-
public void Format_Sql_should_set_value_to_const_true()
136-
{
137-
_config.FormatSql();
138-
ValueOf("format_sql").ShouldEqual("true");
139-
}
140-
141-
[Test]
142-
public void DoNot_ShowSql_should_set_the_property_to_const_false()
143-
{
144-
_config.DoNot.ShowSql();
145-
ValueOf("show_sql").ShouldEqual("false");
146-
}
147-
148-
[Test]
149-
public void DoNot_Should_only_affect_next_property()
150-
{
151-
_config.DoNot.ShowSql().UseReflectionOptimizer();
152-
ValueOf("show_sql").ShouldEqual("false");
153-
ValueOf("use_reflection_optimizer").ShouldEqual("true");
154-
}
155-
156-
[Test]
157-
public void Repeated_DoNot_Calls()
158-
{
159-
_config.DoNot.ShowSql().DoNot.UseReflectionOptimizer();
160-
ValueOf("show_sql").ShouldEqual("false");
161-
ValueOf("use_reflection_optimizer").ShouldEqual("false");
162-
}
163-
164-
[Test]
165-
public void DoNot_UseReflectionOptimizer_should_set_the_property_to_const_false()
166-
{
167-
_config.DoNot.UseReflectionOptimizer();
168-
ValueOf("use_reflection_optimizer").ShouldEqual("false");
169-
}
170-
171-
[Test]
172-
public void DoNot_UseOuterJoin_should_set_the_property_to_const_false()
173-
{
174-
_config.DoNot.UseOuterJoin();
175-
ValueOf("use_outer_join").ShouldEqual("false");
176-
}
177-
178-
[Test]
179-
public void AdoNetBatchSize_should_set_property_value()
180-
{
181-
_config.AdoNetBatchSize(500);
182-
ValueOf("adonet.batch_size").ShouldEqual("500");
183-
}
184-
185-
public class ConfigTester : PersistenceConfiguration<ConfigTester>
186-
{
187-
}
188-
}
1+
using FluentNHibernate.Cfg.Db;
2+
using NHibernate.Cfg;
3+
using NUnit.Framework;
4+
5+
namespace FluentNHibernate.Testing.Cfg.Db
6+
{
7+
[TestFixture]
8+
public class PersistenceConfigurationTester
9+
{
10+
#region Test Setup
11+
private ConfigTester _config;
12+
private Configuration _nhibConfig;
13+
14+
[SetUp]
15+
public void SetUp()
16+
{
17+
_nhibConfig = null;
18+
_config = new ConfigTester();
19+
}
20+
21+
public string ValueOf(string key)
22+
{
23+
if( _nhibConfig == null )
24+
{
25+
_nhibConfig = new Configuration();
26+
_config.ConfigureProperties(_nhibConfig);
27+
}
28+
29+
return _nhibConfig.GetProperty(key);
30+
}
31+
#endregion
32+
33+
[Test]
34+
public void ConfigureProperties_should_not_override_values_already_set()
35+
{
36+
_nhibConfig = new Configuration();
37+
_nhibConfig.Properties["proxyfactory.factory_class"] = "foo";
38+
ValueOf("proxyfactory.factory_class").ShouldEqual("foo");
39+
40+
}
41+
42+
[Test]
43+
public void ConfigureProperties_should_override_values_already_set_with_values_set_in_code()
44+
{
45+
_nhibConfig = new Configuration();
46+
_nhibConfig.Properties["proxyfactory.factory_class"] = "foo";
47+
_config.ProxyFactoryFactory("bar").ConfigureProperties(_nhibConfig);
48+
ValueOf("proxyfactory.factory_class").ShouldEqual("bar");
49+
50+
}
51+
52+
[Test]
53+
public void Setting_raw_values_should_populate_dictionary()
54+
{
55+
_config.Raw("TESTKEY", "TESTVALUE");
56+
57+
ValueOf("TESTKEY").ShouldEqual("TESTVALUE");
58+
}
59+
60+
[Test]
61+
public void Dialect_should_set_both_old_and_new_dialect_keys()
62+
{
63+
_config.Dialect("foo");
64+
65+
ValueOf("dialect").ShouldEqual("foo");
66+
ValueOf("hibernate.dialect").ShouldEqual("foo");
67+
}
68+
69+
[Test]
70+
public void Default_Schema_should_be_set_to_schema_name()
71+
{
72+
_config.DefaultSchema("foo");
73+
ValueOf("default_schema").ShouldEqual("foo");
74+
}
75+
76+
[Test]
77+
public void UseOuterJoin_should_set_value_to_const_true()
78+
{
79+
_config.UseOuterJoin();
80+
ValueOf("use_outer_join").ShouldEqual("true");
81+
}
82+
83+
[Test]
84+
public void Max_Fetch_Depth_should_set_property_value()
85+
{
86+
_config.MaxFetchDepth(2);
87+
ValueOf("max_fetch_depth").ShouldEqual("2");
88+
}
89+
90+
[Test]
91+
public void Use_Reflection_Optimizer_should_set_value_to_const_true()
92+
{
93+
_config.UseReflectionOptimizer();
94+
ValueOf("use_reflection_optimizer").ShouldEqual("true");
95+
96+
}
97+
98+
[Test]
99+
public void Provider_Class_should_set_property_value()
100+
{
101+
_config.Cache(c => c
102+
.ProviderClass("foo"));
103+
ValueOf("cache.provider_class").ShouldEqual("foo");
104+
105+
}
106+
107+
[Test]
108+
public void Use_Minimal_Puts_should_set_value_to_const_true()
109+
{
110+
_config.Cache(c => c
111+
.UseMinimalPuts());
112+
ValueOf("cache.use_minimal_puts").ShouldEqual("true");
113+
}
114+
115+
[Test]
116+
public void Use_Query_Cache_should_set_value_to_const_true()
117+
{
118+
_config.Cache(c => c
119+
.UseQueryCache());
120+
ValueOf("cache.use_query_cache").ShouldEqual("true");
121+
}
122+
123+
[Test]
124+
public void Query_Cache_Factory_should_set_property_value()
125+
{
126+
_config.Cache(c => c
127+
.QueryCacheFactory("foo"));
128+
ValueOf("cache.query_cache_factory").ShouldEqual("foo");
129+
}
130+
131+
[Test]
132+
public void Region_Prefix_should_set_property_value()
133+
{
134+
_config.Cache(c => c
135+
.RegionPrefix("foo"));
136+
ValueOf("cache.region_prefix").ShouldEqual("foo");
137+
}
138+
139+
[Test]
140+
public void Query_Substitutions_should_set_property_value()
141+
{
142+
_config.QuerySubstitutions("foo");
143+
ValueOf("query.substitutions").ShouldEqual("foo");
144+
}
145+
146+
[Test]
147+
public void Show_Sql_should_set_value_to_const_true()
148+
{
149+
_config.ShowSql();
150+
ValueOf("show_sql").ShouldEqual("true");
151+
}
152+
153+
[Test]
154+
public void Format_Sql_should_set_value_to_const_true()
155+
{
156+
_config.FormatSql();
157+
ValueOf("format_sql").ShouldEqual("true");
158+
}
159+
160+
[Test]
161+
public void DoNot_ShowSql_should_set_the_property_to_const_false()
162+
{
163+
_config.DoNot.ShowSql();
164+
ValueOf("show_sql").ShouldEqual("false");
165+
}
166+
167+
[Test]
168+
public void DoNot_Should_only_affect_next_property()
169+
{
170+
_config.DoNot.ShowSql().UseReflectionOptimizer();
171+
ValueOf("show_sql").ShouldEqual("false");
172+
ValueOf("use_reflection_optimizer").ShouldEqual("true");
173+
}
174+
175+
[Test]
176+
public void Repeated_DoNot_Calls()
177+
{
178+
_config.DoNot.ShowSql().DoNot.UseReflectionOptimizer();
179+
ValueOf("show_sql").ShouldEqual("false");
180+
ValueOf("use_reflection_optimizer").ShouldEqual("false");
181+
}
182+
183+
[Test]
184+
public void DoNot_UseReflectionOptimizer_should_set_the_property_to_const_false()
185+
{
186+
_config.DoNot.UseReflectionOptimizer();
187+
ValueOf("use_reflection_optimizer").ShouldEqual("false");
188+
}
189+
190+
[Test]
191+
public void DoNot_UseOuterJoin_should_set_the_property_to_const_false()
192+
{
193+
_config.DoNot.UseOuterJoin();
194+
ValueOf("use_outer_join").ShouldEqual("false");
195+
}
196+
197+
[Test]
198+
public void AdoNetBatchSize_should_set_property_value()
199+
{
200+
_config.AdoNetBatchSize(500);
201+
ValueOf("adonet.batch_size").ShouldEqual("500");
202+
}
203+
204+
public class ConfigTester : PersistenceConfiguration<ConfigTester>
205+
{
206+
}
207+
}
189208
}

0 commit comments

Comments
 (0)