PageRenderTime 40ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 0ms

/OpenIdProvider.Tests/RestrictionsTests.cs

https://bitbucket.org/sparktree/stackexchange.stackid
C# | 343 lines | 281 code | 62 blank | 0 comment | 0 complexity | 93887dd151b6d628aef18d1aad22d9d2 MD5 | raw file
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using NUnit.Framework;
  6. using OpenIdProvider.Helpers;
  7. using OpenIdProvider.Models;
  8. using System.Data.Linq;
  9. namespace OpenIdProvider.Tests
  10. {
  11. [TestFixture]
  12. public class RestrictionsTests
  13. {
  14. [Test]
  15. public void NoDeletions()
  16. {
  17. var r = new Restrictions();
  18. string ignored;
  19. Assert.IsFalse(r.IsValidChangeSet(new Dictionary<object, Restrictions.ShadowModifiedMember[]>(), new List<object>() { new User() }, new List<object>(), new List<object>(), new List<int>(), out ignored));
  20. }
  21. [Test]
  22. public void NoUserUpdatesIfNotInList()
  23. {
  24. var r = new Restrictions();
  25. var user = new User
  26. {
  27. Id = 1,
  28. CreationDate = DateTime.UtcNow
  29. };
  30. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  31. updates[user] = new Restrictions.ShadowModifiedMember[]
  32. {
  33. new Restrictions.ShadowModifiedMember
  34. {
  35. Member = typeof(User).GetProperty("CreationDate"),
  36. CurrentValue = user.CreationDate,
  37. OriginalValue = null
  38. }
  39. };
  40. string ignored;
  41. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { user }, new List<int>(), out ignored), ignored);
  42. }
  43. [Test]
  44. public void UpdateUsersInList()
  45. {
  46. var r = new Restrictions();
  47. var user = new User
  48. {
  49. Id = 1,
  50. CreationDate = DateTime.UtcNow
  51. };
  52. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  53. updates[user] = new Restrictions.ShadowModifiedMember[]
  54. {
  55. new Restrictions.ShadowModifiedMember
  56. {
  57. Member = typeof(User).GetProperty("CreationDate"),
  58. CurrentValue = user.CreationDate,
  59. OriginalValue = null
  60. }
  61. };
  62. string ignored;
  63. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { user }, new List<int>() { 1 }, out ignored), ignored);
  64. }
  65. [Test]
  66. public void NoUserTypeIdUpdate()
  67. {
  68. var r = new Restrictions();
  69. var user = new User
  70. {
  71. Id = 1,
  72. UserTypeId = 2
  73. };
  74. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  75. updates[user] = new Restrictions.ShadowModifiedMember[]
  76. {
  77. new Restrictions.ShadowModifiedMember
  78. {
  79. Member = typeof(User).GetProperty("UserTypeId"),
  80. CurrentValue = user.UserTypeId,
  81. OriginalValue = 1
  82. }
  83. };
  84. string ignored;
  85. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { user }, new List<int>() { 1 }, out ignored));
  86. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { user }, new List<int>(), out ignored));
  87. }
  88. [Test]
  89. public void NoUserHistoryUpdates()
  90. {
  91. var r = new Restrictions();
  92. var history = new UserHistory
  93. {
  94. Id = 1
  95. };
  96. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  97. updates[history] = new Restrictions.ShadowModifiedMember[]
  98. {
  99. new Restrictions.ShadowModifiedMember
  100. {
  101. Member = typeof(UserHistory).GetProperty("Id"),
  102. CurrentValue = history.Id,
  103. OriginalValue = 2
  104. }
  105. };
  106. string ignored;
  107. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { history }, new List<int>() { 1 }, out ignored));
  108. }
  109. [Test]
  110. public void NoUserHistoryInsertsWithoutIds()
  111. {
  112. var r = new Restrictions();
  113. var history = new UserHistory
  114. {
  115. Id = 1
  116. };
  117. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  118. string ignored;
  119. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { history }, new List<object>(), new List<int>(), out ignored));
  120. }
  121. [Test]
  122. public void UserHistoryInsertWithUserId()
  123. {
  124. var r = new Restrictions();
  125. var history = new UserHistory
  126. {
  127. UserId = 1
  128. };
  129. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  130. string ignored;
  131. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { history }, new List<object>(), new List<int>() { 1 }, out ignored));
  132. }
  133. [Test]
  134. public void NoUserAttributeUpdateWithoutUserId()
  135. {
  136. var r = new Restrictions();
  137. var attr = new UserAttribute
  138. {
  139. UserId = 1
  140. };
  141. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  142. updates[attr] = new Restrictions.ShadowModifiedMember[]
  143. {
  144. new Restrictions.ShadowModifiedMember
  145. {
  146. Member = typeof(UserAttribute).GetProperty("UserId"),
  147. CurrentValue = attr.Id,
  148. OriginalValue = 2
  149. }
  150. };
  151. string ignored;
  152. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { attr }, new List<int>(), out ignored));
  153. }
  154. [Test]
  155. public void UserAttributeUpdateWithUserId()
  156. {
  157. var r = new Restrictions();
  158. var attr = new UserAttribute
  159. {
  160. UserId = 1
  161. };
  162. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  163. updates[attr] = new Restrictions.ShadowModifiedMember[]
  164. {
  165. new Restrictions.ShadowModifiedMember
  166. {
  167. Member = typeof(UserAttribute).GetProperty("UserId"),
  168. CurrentValue = attr.Id,
  169. OriginalValue = 2
  170. }
  171. };
  172. string ignored;
  173. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { attr }, new List<int>() { 1 }, out ignored));
  174. }
  175. [Test]
  176. public void NoUserAttributeInsertWithoutUserId()
  177. {
  178. var r = new Restrictions();
  179. var attr = new UserAttribute
  180. {
  181. UserId = 1
  182. };
  183. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  184. string ignored;
  185. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { attr }, new List<object>(), new List<int>(), out ignored));
  186. }
  187. [Test]
  188. public void UserAttributeInsertWithUserId()
  189. {
  190. var r = new Restrictions();
  191. var attr = new UserAttribute
  192. {
  193. UserId = 1
  194. };
  195. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  196. string ignored;
  197. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { attr }, new List<object>(), new List<int>() { 1 }, out ignored));
  198. }
  199. [Test]
  200. public void NoUserSiteAuthorizationInsertWithoutUserId()
  201. {
  202. var r = new Restrictions();
  203. var siteAuth = new UserSiteAuthorization
  204. {
  205. UserId = 1
  206. };
  207. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  208. string ignored;
  209. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { siteAuth }, new List<object>(), new List<int>(), out ignored));
  210. }
  211. [Test]
  212. public void UserSiteAuthorizationInsertWithUserId()
  213. {
  214. var r = new Restrictions();
  215. var siteAuth = new UserSiteAuthorization
  216. {
  217. UserId = 1
  218. };
  219. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  220. string ignored;
  221. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { siteAuth }, new List<object>(), new List<int>() { 1 }, out ignored));
  222. }
  223. [Test]
  224. public void NoPendingUserInsert()
  225. {
  226. var r = new Restrictions();
  227. var pending = new PendingUser
  228. {
  229. Id = 1
  230. };
  231. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  232. string ignored;
  233. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { pending }, new List<object>(), new List<int>(), out ignored));
  234. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>() { pending }, new List<object>(), new List<int>() { 1 }, out ignored));
  235. }
  236. [Test]
  237. public void NoPendingUserUpdateOnNonDeletionDate()
  238. {
  239. var r = new Restrictions();
  240. var pending = new PendingUser
  241. {
  242. Id = 1
  243. };
  244. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  245. updates[pending] = new Restrictions.ShadowModifiedMember[]
  246. {
  247. new Restrictions.ShadowModifiedMember
  248. {
  249. Member = typeof(PendingUser).GetProperty("Id"),
  250. CurrentValue = pending.Id,
  251. OriginalValue = 2
  252. }
  253. };
  254. string ignored;
  255. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>(){pending}, new List<int>(), out ignored));
  256. Assert.IsFalse(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>(){pending}, new List<int>() { 1 }, out ignored));
  257. }
  258. [Test]
  259. public void PendingUserUpdateDeletionDate()
  260. {
  261. var r = new Restrictions();
  262. var pending = new PendingUser
  263. {
  264. Id = 1,
  265. DeletionDate = DateTime.Now
  266. };
  267. var updates = new Dictionary<object, Restrictions.ShadowModifiedMember[]>();
  268. updates[pending] = new Restrictions.ShadowModifiedMember[]
  269. {
  270. new Restrictions.ShadowModifiedMember
  271. {
  272. Member = typeof(PendingUser).GetProperty("DeletionDate"),
  273. CurrentValue = pending.DeletionDate,
  274. OriginalValue = null
  275. }
  276. };
  277. string ignored;
  278. Assert.IsTrue(r.IsValidChangeSet(updates, new List<object>(), new List<object>(), new List<object>() { pending }, new List<int>(), out ignored));
  279. }
  280. }
  281. }