PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/NUnit-2.5.7.10213/src/NUnitFramework/tests/FileAssertTests.cs

http://github.com/shouldly/shouldly
C# | 436 lines | 388 code | 39 blank | 9 comment | 7 complexity | f430f95a4756125c1d9e175788e8d796 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
  1. // ****************************************************************
  2. // This is free software licensed under the NUnit license. You
  3. // may obtain a copy of the license as well as information regarding
  4. // copyright ownership at http://nunit.org.
  5. // ****************************************************************
  6. using System;
  7. using System.IO;
  8. using System.Reflection;
  9. using System.Net.Sockets;
  10. namespace NUnit.Framework.Tests
  11. {
  12. public class TestFile : IDisposable
  13. {
  14. private bool _disposedValue = false;
  15. private string _resourceName;
  16. private string _fileName;
  17. #region Nested TestFile Utility Class
  18. public TestFile(string fileName, string resourceName)
  19. {
  20. _resourceName = "NUnit.Framework.Tests." + resourceName;
  21. _fileName = fileName;
  22. Assembly a = Assembly.GetExecutingAssembly();
  23. using (Stream s = a.GetManifestResourceStream(_resourceName))
  24. {
  25. if (s == null) throw new Exception("Manifest Resource Stream " + _resourceName + " was not found.");
  26. byte[] buffer = new byte[1024];
  27. using (FileStream fs = File.Create(_fileName))
  28. {
  29. while(true)
  30. {
  31. int count = s.Read(buffer, 0, buffer.Length);
  32. if(count == 0) break;
  33. fs.Write(buffer, 0, count);
  34. }
  35. }
  36. }
  37. }
  38. protected virtual void Dispose(bool disposing)
  39. {
  40. if (!this._disposedValue)
  41. {
  42. if (disposing)
  43. {
  44. if(File.Exists(_fileName))
  45. {
  46. File.Delete(_fileName);
  47. }
  48. }
  49. }
  50. this._disposedValue = true;
  51. }
  52. #region IDisposable Members
  53. public void Dispose()
  54. {
  55. // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
  56. Dispose(true);
  57. GC.SuppressFinalize(this);
  58. }
  59. #endregion
  60. }
  61. #endregion
  62. /// <summary>
  63. /// Summary description for FileAssertTests.
  64. /// </summary>
  65. [TestFixture]
  66. public class FileAssertTests : MessageChecker
  67. {
  68. #region AreEqual
  69. #region Success Tests
  70. [Test]
  71. public void AreEqualPassesWhenBothAreNull()
  72. {
  73. FileStream expected = null;
  74. FileStream actual = null;
  75. FileAssert.AreEqual( expected, actual );
  76. }
  77. [Test]
  78. public void AreEqualPassesWithSameStream()
  79. {
  80. Stream exampleStream = new MemoryStream(new byte[] { 1, 2, 3 });
  81. Assert.That(exampleStream, Is.EqualTo(exampleStream));
  82. }
  83. [Test]
  84. public void AreEqualPassesWithEqualStreams()
  85. {
  86. using (TestFile tf1 = new TestFile("Test1.jpg", "TestImage1.jpg"))
  87. using (TestFile tf2 = new TestFile("Test2.jpg", "TestImage1.jpg"))
  88. {
  89. using (FileStream expected = File.OpenRead("Test1.jpg"))
  90. {
  91. using (FileStream actual = File.OpenRead("Test2.jpg"))
  92. {
  93. FileAssert.AreEqual(expected, actual);
  94. }
  95. }
  96. }
  97. }
  98. [Test, ExpectedException(typeof(ArgumentException),
  99. ExpectedMessage = "not readable", MatchType = MessageMatch.Contains)]
  100. public void NonReadableStreamGivesException()
  101. {
  102. using (TestFile tf1 = new TestFile("Test1.jpg", "TestImage1.jpg"))
  103. using (TestFile tf2 = new TestFile("Test2.jpg", "TestImage1.jpg"))
  104. {
  105. using (FileStream expected = File.OpenRead("Test1.jpg"))
  106. {
  107. using (FileStream actual = File.OpenWrite("Test2.jpg"))
  108. {
  109. FileAssert.AreEqual(expected, actual);
  110. }
  111. }
  112. }
  113. }
  114. [Test, ExpectedException(typeof(ArgumentException),
  115. ExpectedMessage = "not seekable", MatchType = MessageMatch.Contains)]
  116. public void NonSeekableStreamGivesException()
  117. {
  118. using (TestFile tf1 = new TestFile("Test1.jpg", "TestImage1.jpg"))
  119. {
  120. using (FileStream expected = File.OpenRead("Test1.jpg"))
  121. {
  122. using (FakeStream actual = new FakeStream())
  123. {
  124. FileAssert.AreEqual(expected, actual);
  125. }
  126. }
  127. }
  128. }
  129. private class FakeStream : MemoryStream
  130. {
  131. public override bool CanSeek
  132. {
  133. get { return false; }
  134. }
  135. }
  136. [Test]
  137. public void AreEqualPassesWithFiles()
  138. {
  139. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  140. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage1.jpg"))
  141. {
  142. FileAssert.AreEqual( "Test1.jpg", "Test2.jpg", "Failed using file names" );
  143. }
  144. }
  145. [Test]
  146. public void AreEqualPassesUsingSameFileTwice()
  147. {
  148. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  149. {
  150. FileAssert.AreEqual( "Test1.jpg", "Test1.jpg" );
  151. }
  152. }
  153. [Test]
  154. public void AreEqualPassesWithFileInfos()
  155. {
  156. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  157. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage1.jpg"))
  158. {
  159. FileInfo expected = new FileInfo( "Test1.jpg" );
  160. FileInfo actual = new FileInfo( "Test2.jpg" );
  161. FileAssert.AreEqual( expected, actual );
  162. FileAssert.AreEqual( expected, actual );
  163. }
  164. }
  165. [Test]
  166. public void AreEqualPassesWithTextFiles()
  167. {
  168. using(TestFile tf1 = new TestFile("Test1.txt","TestText1.txt"))
  169. {
  170. using(TestFile tf2 = new TestFile("Test2.txt","TestText1.txt"))
  171. {
  172. FileAssert.AreEqual( "Test1.txt", "Test2.txt" );
  173. }
  174. }
  175. }
  176. #endregion
  177. #region Failure Tests
  178. [Test,ExpectedException(typeof(AssertionException))]
  179. public void AreEqualFailsWhenOneIsNull()
  180. {
  181. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  182. {
  183. using(FileStream expected = File.OpenRead("Test1.jpg"))
  184. {
  185. expectedMessage =
  186. " Expected: <System.IO.FileStream>" + Environment.NewLine +
  187. " But was: null" + Environment.NewLine;
  188. FileAssert.AreEqual( expected, null );
  189. }
  190. }
  191. }
  192. [Test,ExpectedException(typeof(AssertionException))]
  193. public void AreEqualFailsWithStreams()
  194. {
  195. string expectedFile = "Test1.jpg";
  196. string actualFile = "Test2.jpg";
  197. using(TestFile tf1 = new TestFile(expectedFile,"TestImage1.jpg"))
  198. {
  199. using(TestFile tf2 = new TestFile(actualFile,"TestImage2.jpg"))
  200. {
  201. using(FileStream expected = File.OpenRead(expectedFile))
  202. {
  203. using(FileStream actual = File.OpenRead(actualFile))
  204. {
  205. expectedMessage =
  206. string.Format(" Expected Stream length {0} but was {1}." + Environment.NewLine,
  207. new FileInfo(expectedFile).Length, new FileInfo(actualFile).Length);
  208. FileAssert.AreEqual( expected, actual);
  209. }
  210. }
  211. }
  212. }
  213. }
  214. [Test,ExpectedException(typeof(AssertionException))]
  215. public void AreEqualFailsWithFileInfos()
  216. {
  217. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  218. {
  219. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage2.jpg"))
  220. {
  221. FileInfo expected = new FileInfo( "Test1.jpg" );
  222. FileInfo actual = new FileInfo( "Test2.jpg" );
  223. expectedMessage =
  224. string.Format(" Expected Stream length {0} but was {1}." + Environment.NewLine,
  225. expected.Length, actual.Length);
  226. FileAssert.AreEqual( expected, actual );
  227. }
  228. }
  229. }
  230. [Test,ExpectedException(typeof(AssertionException))]
  231. public void AreEqualFailsWithFiles()
  232. {
  233. string expected = "Test1.jpg";
  234. string actual = "Test2.jpg";
  235. using(TestFile tf1 = new TestFile(expected,"TestImage1.jpg"))
  236. {
  237. using(TestFile tf2 = new TestFile(actual,"TestImage2.jpg"))
  238. {
  239. expectedMessage =
  240. string.Format(" Expected Stream length {0} but was {1}." + Environment.NewLine,
  241. new FileInfo(expected).Length, new FileInfo(actual).Length);
  242. FileAssert.AreEqual( expected, actual );
  243. }
  244. }
  245. }
  246. [Test]
  247. [ExpectedException(typeof(AssertionException),
  248. ExpectedMessage="Stream lengths are both",
  249. MatchType=MessageMatch.Contains)]
  250. public void AreEqualFailsWithTextFilesAfterReadingBothFiles()
  251. {
  252. using(TestFile tf1 = new TestFile("Test1.txt","TestText1.txt"))
  253. {
  254. using(TestFile tf2 = new TestFile("Test2.txt","TestText2.txt"))
  255. {
  256. FileAssert.AreEqual( "Test1.txt", "Test2.txt" );
  257. }
  258. }
  259. }
  260. #endregion
  261. #endregion
  262. #region AreNotEqual
  263. #region Success Tests
  264. [Test]
  265. public void AreNotEqualPassesIfOneIsNull()
  266. {
  267. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  268. {
  269. using(FileStream expected = File.OpenRead("Test1.jpg"))
  270. {
  271. FileAssert.AreNotEqual( expected, null );
  272. }
  273. }
  274. }
  275. [Test]
  276. public void AreNotEqualPassesWithStreams()
  277. {
  278. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  279. {
  280. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage2.jpg"))
  281. {
  282. using(FileStream expected = File.OpenRead("Test1.jpg"))
  283. {
  284. using(FileStream actual = File.OpenRead("Test2.jpg"))
  285. {
  286. FileAssert.AreNotEqual( expected, actual);
  287. }
  288. }
  289. }
  290. }
  291. }
  292. [Test]
  293. public void AreNotEqualPassesWithFiles()
  294. {
  295. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  296. {
  297. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage2.jpg"))
  298. {
  299. FileAssert.AreNotEqual( "Test1.jpg", "Test2.jpg" );
  300. }
  301. }
  302. }
  303. [Test]
  304. public void AreNotEqualPassesWithFileInfos()
  305. {
  306. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  307. {
  308. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage2.jpg"))
  309. {
  310. FileInfo expected = new FileInfo( "Test1.jpg" );
  311. FileInfo actual = new FileInfo( "Test2.jpg" );
  312. FileAssert.AreNotEqual( expected, actual );
  313. }
  314. }
  315. }
  316. [Test]
  317. public void AreNotEqualIteratesOverTheEntireFile()
  318. {
  319. using(TestFile tf1 = new TestFile("Test1.txt","TestText1.txt"))
  320. {
  321. using(TestFile tf2 = new TestFile("Test2.txt","TestText2.txt"))
  322. {
  323. FileAssert.AreNotEqual( "Test1.txt", "Test2.txt" );
  324. }
  325. }
  326. }
  327. #endregion
  328. #region Failure Tests
  329. [Test, ExpectedException(typeof(AssertionException))]
  330. public void AreNotEqualFailsWhenBothAreNull()
  331. {
  332. FileStream expected = null;
  333. FileStream actual = null;
  334. expectedMessage =
  335. " Expected: not null" + Environment.NewLine +
  336. " But was: null" + Environment.NewLine;
  337. FileAssert.AreNotEqual( expected, actual );
  338. }
  339. [Test,ExpectedException(typeof(AssertionException))]
  340. public void AreNotEqualFailsWithStreams()
  341. {
  342. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  343. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage1.jpg"))
  344. using(FileStream expected = File.OpenRead("Test1.jpg"))
  345. using(FileStream actual = File.OpenRead("Test2.jpg"))
  346. {
  347. expectedMessage =
  348. " Expected: not <System.IO.FileStream>" + Environment.NewLine +
  349. " But was: <System.IO.FileStream>" + Environment.NewLine;
  350. FileAssert.AreNotEqual( expected, actual );
  351. }
  352. }
  353. [Test,ExpectedException(typeof(AssertionException))]
  354. public void AreNotEqualFailsWithFileInfos()
  355. {
  356. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  357. {
  358. using(TestFile tf2 = new TestFile("Test2.jpg","TestImage1.jpg"))
  359. {
  360. FileInfo expected = new FileInfo( "Test1.jpg" );
  361. FileInfo actual = new FileInfo( "Test2.jpg" );
  362. expectedMessage =
  363. " Expected: not <System.IO.FileStream>" + Environment.NewLine +
  364. " But was: <System.IO.FileStream>" + Environment.NewLine;
  365. FileAssert.AreNotEqual( expected, actual );
  366. }
  367. }
  368. }
  369. [Test,ExpectedException(typeof(AssertionException))]
  370. public void AreNotEqualFailsWithFiles()
  371. {
  372. using(TestFile tf1 = new TestFile("Test1.jpg","TestImage1.jpg"))
  373. {
  374. expectedMessage =
  375. " Expected: not <System.IO.FileStream>" + Environment.NewLine +
  376. " But was: <System.IO.FileStream>" + Environment.NewLine;
  377. FileAssert.AreNotEqual( "Test1.jpg", "Test1.jpg" );
  378. }
  379. }
  380. [Test,ExpectedException(typeof(AssertionException))]
  381. public void AreNotEqualIteratesOverTheEntireFileAndFails()
  382. {
  383. using(TestFile tf1 = new TestFile("Test1.txt","TestText1.txt"))
  384. {
  385. using(TestFile tf2 = new TestFile("Test2.txt","TestText1.txt"))
  386. {
  387. expectedMessage =
  388. " Expected: not <System.IO.FileStream>" + Environment.NewLine +
  389. " But was: <System.IO.FileStream>" + Environment.NewLine;
  390. FileAssert.AreNotEqual( "Test1.txt", "Test2.txt" );
  391. }
  392. }
  393. }
  394. #endregion
  395. #endregion
  396. }
  397. }