Util應用程式框架公共操作類(三):資料型別轉換公共操作類(擴充套件篇)
阿新 • • 發佈:2018-12-29
1 using System;
2 using System.Collections.Generic;
3 using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5 namespace Util.Tests.Extensions {
6 /// <summary>
7 /// 型別轉換擴充套件測試
8 /// </summary>
9 [TestClass]
10 public class ConvertExtensionTest {
11 /// <summary>
12 /// 轉換為整數
13 /// </summary>
14 [TestMethod]
15 public void TestToInt() {
16 string obj1 = "";
17 string obj2 = "1";
18 Assert.AreEqual( 0, obj1.ToInt() );
19 Assert.AreEqual( 1, obj2.ToInt() );
20 }
21
22 /// <summary>
23 /// 轉換為可空整數
24 /// </summary>
25 [TestMethod]
26 public void TestToIntOrNull() {
27 string obj1 = "";
28 string obj2 = "1";
29 Assert.IsNull( obj1.ToIntOrNull() );
30 Assert.AreEqual( 1, obj2.ToIntOrNull() );
31 }
32
33 /// <summary>
34 /// 轉換為雙精度浮點數
35 /// </summary>
36 [TestMethod]
37 public void TestToDouble() {
38 string obj1 = "";
39 string obj2 = "1.2";
40 Assert.AreEqual( 0, obj1.ToDouble() );
41 Assert.AreEqual( 1.2, obj2.ToDouble() );
42 }
43
44 /// <summary>
45 /// 轉換為可空雙精度浮點數
46 /// </summary>
47 [TestMethod]
48 public void TestToDoubleOrNull() {
49 string obj1 = "";
50 string obj2 = "1.2";
51 Assert.IsNull( obj1.ToDoubleOrNull() );
52 Assert.AreEqual( 1.2, obj2.ToDoubleOrNull() );
53 }
54
55 /// <summary>
56 /// 轉換為高精度浮點數
57 /// </summary>
58 [TestMethod]
59 public void TestToDecimal() {
60 string obj1 = "";
61 string obj2 = "1.2";
62 Assert.AreEqual( 0, obj1.ToDecimal() );
63 Assert.AreEqual( 1.2M, obj2.ToDecimal() );
64 }
65
66 /// <summary>
67 /// 轉換為可空高精度浮點數
68 /// </summary>
69 [TestMethod]
70 public void TestToDecimalOrNull() {
71 string obj1 = "";
72 string obj2 = "1.2";
73 Assert.IsNull( obj1.ToDecimalOrNull() );
74 Assert.AreEqual( 1.2M, obj2.ToDecimalOrNull() );
75 }
76
77 /// <summary>
78 /// 轉換為日期
79 /// </summary>
80 [TestMethod]
81 public void TestToDate() {
82 string obj1 = "";
83 string obj2 = "2000-1-1";
84 Assert.AreEqual( DateTime.MinValue, obj1.ToDate() );
85 Assert.AreEqual( new DateTime( 2000, 1, 1 ), obj2.ToDate() );
86 }
87
88 /// <summary>
89 /// 轉換為可空日期
90 /// </summary>
91 [TestMethod]
92 public void TestToDateOrNull() {
93 string obj1 = "";
94 string obj2 = "2000-1-1";
95 Assert.IsNull( obj1.ToDateOrNull() );
96 Assert.AreEqual( new DateTime( 2000, 1, 1 ), obj2.ToDateOrNull() );
97 }
98
99 /// <summary>
100 /// 轉換為Guid
101 /// </summary>
102 [TestMethod]
103 public void TestToGuid() {
104 string obj1 = "";
105 string obj2 = "B9EB56E9-B720-40B4-9425-00483D311DDC";
106 Assert.AreEqual( Guid.Empty, obj1.ToGuid() );
107 Assert.AreEqual( new Guid( obj2 ), obj2.ToGuid() );
108 }
109
110 /// <summary>
111 /// 轉換為可空Guid
112 /// </summary>
113 [TestMethod]
114 public void TestToGuidOrNull() {
115 string obj1 = "";
116 string obj2 = "B9EB56E9-B720-40B4-9425-00483D311DDC";
117 Assert.IsNull( obj1.ToGuidOrNull() );
118 Assert.AreEqual( new Guid( obj2 ), obj2.ToGuidOrNull() );
119 }
120
121 /// <summary>
122 /// 轉換為Guid集合,值為字串
123 /// </summary>
124 [TestMethod]
125 public void TestToGuidList_String() {
126 const string guid = "83B0233C-A24F-49FD-8083-1337209EBC9A,,EAB523C6-2FE7-47BE-89D5-C6D440C3033A,";
127 Assert.AreEqual( 2, guid.ToGuidList().Count );
128 Assert.AreEqual( new Guid( "83B0233C-A24F-49FD-8083-1337209EBC9A" ), guid.ToGuidList()[0] );
129 Assert.AreEqual( new Guid( "EAB523C6-2FE7-47BE-89D5-C6D440C3033A" ), guid.ToGuidList()[1] );
130 }
131
132 /// <summary>
133 /// 轉換為Guid集合,值為字串集合
134 /// </summary>
135 [TestMethod]
136 public void TestToGuidList_StringList() {
137 var list = new List<string> {"83B0233C-A24F-49FD-8083-1337209EBC9A", "EAB523C6-2FE7-47BE-89D5-C6D440C3033A"};
138 Assert.AreEqual( 2, list.ToGuidList().Count );
139 Assert.AreEqual( new Guid( "83B0233C-A24F-49FD-8083-1337209EBC9A" ), list.ToGuidList()[0] );
140 Assert.AreEqual( new Guid( "EAB523C6-2FE7-47BE-89D5-C6D440C3033A" ), list.ToGuidList()[1] );
141 }
142
143 /// <summary>
144 /// 轉換為字串
145 /// </summary>
146 [TestMethod]
147 public void TestToStr() {
148 object value = null;
149 Assert.AreEqual( string.Empty, value.ToStr() );
150 value = 1;
151 Assert.AreEqual( "1", value.ToStr() );
152 }
153 }
154 }