PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/V1/trunk/Source/StockTraderRI/StockTraderRI.Infrastructure.Tests/Converters/StringToNullableNumberConverterFixture.cs

#
C# | 110 lines | 63 code | 28 blank | 19 comment | 0 complexity | 92f6b3703a221d339c78bf03eadeaddb MD5 | raw file
  1. //===============================================================================
  2. // Microsoft patterns & practices
  3. // Composite Application Guidance for Windows Presentation Foundation
  4. //===============================================================================
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
  7. // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  8. // LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  9. // FITNESS FOR A PARTICULAR PURPOSE.
  10. //===============================================================================
  11. // The example companies, organizations, products, domain names,
  12. // e-mail addresses, logos, people, places, and events depicted
  13. // herein are fictitious. No association with any real company,
  14. // organization, product, domain name, email address, logo, person,
  15. // places, or events is intended or should be inferred.
  16. //===============================================================================
  17. using System;
  18. using System.Text;
  19. using System.Collections.Generic;
  20. using System.Linq;
  21. using Microsoft.VisualStudio.TestTools.UnitTesting;
  22. using StockTraderRI.Infrastructure.Converters;
  23. namespace StockTraderRI.Infrastructure.Tests.Converters
  24. {
  25. /// <summary>
  26. /// Summary description for StringToNullableIntConverterFixture
  27. /// </summary>
  28. [TestClass]
  29. public class StringToNullableNumberConverterFixture
  30. {
  31. [TestMethod]
  32. public void ShouldConvertValidIntFromString()
  33. {
  34. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  35. string source = "123";
  36. object result = converter.ConvertBack(source, typeof(int?), null, null);
  37. Assert.IsInstanceOfType(result, typeof(int));
  38. Assert.AreEqual<int>(123, (int)result);
  39. }
  40. [TestMethod]
  41. public void ShouldReturnOriginalValueForNonNullableIntFromString()
  42. {
  43. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  44. string source = "123";
  45. object result = converter.ConvertBack(source, typeof(int), null, null);
  46. Assert.AreSame(source, result);
  47. }
  48. [TestMethod]
  49. public void ShouldReturnNullForInvalidInteger()
  50. {
  51. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  52. string source = "xxx";
  53. object result = converter.ConvertBack(source, typeof(int?), null, null);
  54. Assert.IsNull(result);
  55. }
  56. [TestMethod]
  57. public void ShouldConvertValidDecimalFromString()
  58. {
  59. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  60. string source = "10.05";
  61. object result = converter.ConvertBack(source, typeof(decimal?), null, null);
  62. Assert.IsInstanceOfType(result, typeof(decimal));
  63. Assert.AreEqual<decimal>(10.05M, (decimal)result);
  64. }
  65. [TestMethod]
  66. public void ShouldReturnOriginalValueForNonNullableDecimalTarget()
  67. {
  68. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  69. string source = "10.05";
  70. object result = converter.ConvertBack(source, typeof(decimal), null, null);
  71. Assert.AreSame(source, result);
  72. }
  73. [TestMethod]
  74. public void ShouldReturnNullForInvalidDecimal()
  75. {
  76. StringToNullableNumberConverter converter = new StringToNullableNumberConverter();
  77. string source = "xxx";
  78. object result = converter.ConvertBack(source, typeof(decimal?), null, null);
  79. Assert.IsNull(result);
  80. }
  81. }
  82. }