/src/FluentNHibernate.Testing/ConventionsTests/Inspection/VersionInspectorMapsToVersionMapping.cs

https://github.com/jcmoinet/fluent-nhibernate · C# · 379 lines · 327 code · 52 blank · 0 comment · 0 complexity · 8fd16e7ebef3f18d85e50eccfcf7b778 MD5 · raw file

  1. using System;
  2. using System.Linq;
  3. using System.Linq.Expressions;
  4. using System.Reflection;
  5. using FluentNHibernate.Conventions;
  6. using FluentNHibernate.Conventions.Inspections;
  7. using FluentNHibernate.Mapping;
  8. using FluentNHibernate.MappingModel;
  9. using FluentNHibernate.Utils.Reflection;
  10. using NUnit.Framework;
  11. namespace FluentNHibernate.Testing.ConventionsTests.Inspection
  12. {
  13. [TestFixture, Category("Inspection DSL")]
  14. public class VersionInspectorMapsToVersionMapping
  15. {
  16. private VersionMapping mapping;
  17. private IVersionInspector inspector;
  18. [SetUp]
  19. public void CreateDsl()
  20. {
  21. mapping = new VersionMapping();
  22. inspector = new VersionInspector(mapping);
  23. }
  24. [Test]
  25. public void AccessMapped()
  26. {
  27. mapping.Access = "field";
  28. inspector.Access.ShouldEqual(Access.Field);
  29. }
  30. [Test]
  31. public void AccessIsSet()
  32. {
  33. mapping.Access = "field";
  34. inspector.IsSet(Prop(x => x.Access))
  35. .ShouldBeTrue();
  36. }
  37. [Test]
  38. public void AccessIsNotSet()
  39. {
  40. inspector.IsSet(Prop(x => x.Access))
  41. .ShouldBeFalse();
  42. }
  43. [Test]
  44. public void ColumnCollectionHasSameCountAsMapping()
  45. {
  46. mapping.AddColumn(new ColumnMapping());
  47. inspector.Columns.Count().ShouldEqual(1);
  48. }
  49. [Test]
  50. public void ColumnsCollectionOfInspectors()
  51. {
  52. mapping.AddColumn(new ColumnMapping());
  53. inspector.Columns.First().ShouldBeOfType<IColumnInspector>();
  54. }
  55. [Test]
  56. public void ColumnsCollectionIsEmpty()
  57. {
  58. inspector.Columns.IsEmpty().ShouldBeTrue();
  59. }
  60. [Test]
  61. public void GeneratedMapped()
  62. {
  63. mapping.Generated = "insert";
  64. inspector.Generated.ShouldEqual(Generated.Insert);
  65. }
  66. [Test]
  67. public void GeneratedIsSet()
  68. {
  69. mapping.Generated = "insert";
  70. inspector.IsSet(Prop(x => x.Generated))
  71. .ShouldBeTrue();
  72. }
  73. [Test]
  74. public void GeneratedIsNotSet()
  75. {
  76. inspector.IsSet(Prop(x => x.Generated))
  77. .ShouldBeFalse();
  78. }
  79. [Test]
  80. public void NameMapped()
  81. {
  82. mapping.Name = "name";
  83. inspector.Name.ShouldEqual("name");
  84. }
  85. [Test]
  86. public void NameIsSet()
  87. {
  88. mapping.Name = "name";
  89. inspector.IsSet(Prop(x => x.Name))
  90. .ShouldBeTrue();
  91. }
  92. [Test]
  93. public void NameIsNotSet()
  94. {
  95. inspector.IsSet(Prop(x => x.Name))
  96. .ShouldBeFalse();
  97. }
  98. [Test]
  99. public void TypeMapped()
  100. {
  101. mapping.Type = new TypeReference(typeof(string));
  102. inspector.Type.ShouldEqual(new TypeReference(typeof(string)));
  103. }
  104. [Test]
  105. public void TypeIsSet()
  106. {
  107. mapping.Type = new TypeReference(typeof(string));
  108. inspector.IsSet(Prop(x => x.Type))
  109. .ShouldBeTrue();
  110. }
  111. [Test]
  112. public void TypeIsNotSet()
  113. {
  114. inspector.IsSet(Prop(x => x.Type))
  115. .ShouldBeFalse();
  116. }
  117. [Test]
  118. public void UnsavedValueMapped()
  119. {
  120. mapping.UnsavedValue = "test";
  121. inspector.UnsavedValue.ShouldEqual("test");
  122. }
  123. [Test]
  124. public void UnsavedValueIsSet()
  125. {
  126. mapping.UnsavedValue = "test";
  127. inspector.IsSet(Prop(x => x.UnsavedValue))
  128. .ShouldBeTrue();
  129. }
  130. [Test]
  131. public void UnsavedValueIsNotSet()
  132. {
  133. inspector.IsSet(Prop(x => x.UnsavedValue))
  134. .ShouldBeFalse();
  135. }
  136. [Test]
  137. public void LengthMapped()
  138. {
  139. mapping.AddColumn(new ColumnMapping { Length = 100 });
  140. inspector.Length.ShouldEqual(100);
  141. }
  142. [Test]
  143. public void LengthIsSet()
  144. {
  145. mapping.AddColumn(new ColumnMapping { Length = 100 });
  146. inspector.IsSet(Prop(x => x.Length))
  147. .ShouldBeTrue();
  148. }
  149. [Test]
  150. public void LengthIsNotSet()
  151. {
  152. inspector.IsSet(Prop(x => x.Length))
  153. .ShouldBeFalse();
  154. }
  155. [Test]
  156. public void PrecisionIsSet()
  157. {
  158. mapping.AddColumn(new ColumnMapping { Precision = 10 });
  159. inspector.IsSet(Prop(x => x.Precision))
  160. .ShouldBeTrue();
  161. }
  162. [Test]
  163. public void PrecisionIsNotSet()
  164. {
  165. inspector.IsSet(Prop(x => x.Precision))
  166. .ShouldBeFalse();
  167. }
  168. [Test]
  169. public void ScaleMapped()
  170. {
  171. mapping.AddColumn(new ColumnMapping { Scale = 10 });
  172. inspector.Scale.ShouldEqual(10);
  173. }
  174. [Test]
  175. public void ScaleIsSet()
  176. {
  177. mapping.AddColumn(new ColumnMapping { Scale = 10 });
  178. inspector.IsSet(Prop(x => x.Scale))
  179. .ShouldBeTrue();
  180. }
  181. [Test]
  182. public void ScaleIsNotSet()
  183. {
  184. inspector.IsSet(Prop(x => x.Scale))
  185. .ShouldBeFalse();
  186. }
  187. [Test]
  188. public void NullableMapped()
  189. {
  190. mapping.AddColumn(new ColumnMapping { NotNull = false });
  191. inspector.Nullable.ShouldEqual(true);
  192. }
  193. [Test]
  194. public void NullableIsSet()
  195. {
  196. mapping.AddColumn(new ColumnMapping { NotNull = false });
  197. inspector.IsSet(Prop(x => x.Nullable))
  198. .ShouldBeTrue();
  199. }
  200. [Test]
  201. public void NullableIsNotSet()
  202. {
  203. inspector.IsSet(Prop(x => x.Nullable))
  204. .ShouldBeFalse();
  205. }
  206. [Test]
  207. public void UniqueMapped()
  208. {
  209. mapping.AddColumn(new ColumnMapping { Unique = true });
  210. inspector.Unique.ShouldEqual(true);
  211. }
  212. [Test]
  213. public void UniqueIsSet()
  214. {
  215. mapping.AddColumn(new ColumnMapping { Unique = true });
  216. inspector.IsSet(Prop(x => x.Unique))
  217. .ShouldBeTrue();
  218. }
  219. [Test]
  220. public void UniqueIsNotSet()
  221. {
  222. inspector.IsSet(Prop(x => x.Unique))
  223. .ShouldBeFalse();
  224. }
  225. [Test]
  226. public void UniqueKeyMapped()
  227. {
  228. mapping.AddColumn(new ColumnMapping { UniqueKey = "key" });
  229. inspector.UniqueKey.ShouldEqual("key");
  230. }
  231. [Test]
  232. public void UniqueKeyIsSet()
  233. {
  234. mapping.AddColumn(new ColumnMapping { UniqueKey = "key" });
  235. inspector.IsSet(Prop(x => x.UniqueKey))
  236. .ShouldBeTrue();
  237. }
  238. [Test]
  239. public void UniqueKeyIsNotSet()
  240. {
  241. inspector.IsSet(Prop(x => x.UniqueKey))
  242. .ShouldBeFalse();
  243. }
  244. [Test]
  245. public void SqlTypeMapped()
  246. {
  247. mapping.AddColumn(new ColumnMapping { SqlType = "sql" });
  248. inspector.SqlType.ShouldEqual("sql");
  249. }
  250. [Test]
  251. public void SqlTypeIsSet()
  252. {
  253. mapping.AddColumn(new ColumnMapping { SqlType = "sql" });
  254. inspector.IsSet(Prop(x => x.SqlType))
  255. .ShouldBeTrue();
  256. }
  257. [Test]
  258. public void SqlTypeIsNotSet()
  259. {
  260. inspector.IsSet(Prop(x => x.SqlType))
  261. .ShouldBeFalse();
  262. }
  263. [Test]
  264. public void IndexMapped()
  265. {
  266. mapping.AddColumn(new ColumnMapping { Index = "index" });
  267. inspector.Index.ShouldEqual("index");
  268. }
  269. [Test]
  270. public void IndexIsSet()
  271. {
  272. mapping.AddColumn(new ColumnMapping { Index = "index" });
  273. inspector.IsSet(Prop(x => x.Index))
  274. .ShouldBeTrue();
  275. }
  276. [Test]
  277. public void IndexIsNotSet()
  278. {
  279. inspector.IsSet(Prop(x => x.Index))
  280. .ShouldBeFalse();
  281. }
  282. [Test]
  283. public void CheckMapped()
  284. {
  285. mapping.AddColumn(new ColumnMapping { Check = "key" });
  286. inspector.Check.ShouldEqual("key");
  287. }
  288. [Test]
  289. public void CheckIsSet()
  290. {
  291. mapping.AddColumn(new ColumnMapping { Check = "key" });
  292. inspector.IsSet(Prop(x => x.Check))
  293. .ShouldBeTrue();
  294. }
  295. [Test]
  296. public void CheckIsNotSet()
  297. {
  298. inspector.IsSet(Prop(x => x.Check))
  299. .ShouldBeFalse();
  300. }
  301. [Test]
  302. public void DefaultMapped()
  303. {
  304. mapping.AddColumn(new ColumnMapping { Default = "key" });
  305. inspector.Default.ShouldEqual("key");
  306. }
  307. [Test]
  308. public void DefaultIsSet()
  309. {
  310. mapping.AddColumn(new ColumnMapping { Default = "key" });
  311. inspector.IsSet(Prop(x => x.Default))
  312. .ShouldBeTrue();
  313. }
  314. [Test]
  315. public void DefaultIsNotSet()
  316. {
  317. inspector.IsSet(Prop(x => x.Default))
  318. .ShouldBeFalse();
  319. }
  320. #region Helpers
  321. private Member Prop(Expression<Func<IVersionInspector, object>> propertyExpression)
  322. {
  323. return ReflectionHelper.GetMember(propertyExpression);
  324. }
  325. #endregion
  326. }
  327. }