Clover.NET coverage report - Coverage for s2container.net

Coverage timestamp: 2006年5月30日 11:21:29

File Stats: LOC: 246   Methods: 11
NCLOC: 138 Classes: 1
 
Source File Conditionals Statements Methods TOTAL
Seasar.Extension.Unit\S2Assert.cs 80.0% 81.3% 63.6% 78.5%
coverage coverage
1   using System.Collections;
2   using System.Data;
3   using MbUnit.Core.Exceptions;
4   using MbUnit.Framework;
5   using Seasar.Extension.DataSets;
6   using Seasar.Extension.DataSets.Types;
7   using Seasar.Framework.Util;
8  
9   namespace Seasar.Extension.Unit
10   {
11   public sealed class S2Assert
12   {
13 0 private S2Assert()
14   {
15   }
16  
17   #region AreEqual
18  
19   /// <summary>
20   /// DataSet同士を比較します。
21   ///
22   /// カラムの並び順は比較に影響しません。
23   /// 数値は全てdecimalとして比較します。
24   /// </summary>
25   /// <param name="expected">予測値</param>
26   /// <param name="actual">実際値</param>
27 1 public static void AreEqual(DataSet expected, DataSet actual)
28   {
29 1 AreEqual(expected, actual, null);
30   }
31  
32   /// <summary>
33   /// DataSet同士を比較します。
34   ///
35   /// カラムの並び順は比較に影響しません。
36   /// 数値は全てdecimalとして比較します。
37   /// </summary>
38   /// <param name="expected">予測値</param>
39   /// <param name="actual">実際値</param>
40   /// <param name="message">assert失敗時のメッセージ</param>
41 10 public static void AreEqual(DataSet expected, DataSet actual, string message)
42   {
43 10 message = message == null ? string.Empty : message;
44  
45 10 Assert.AreEqual(
46   expected.Tables.Count,
47   actual.Tables.Count,
48   message + ":TableSize"
49   );
50 21 for (int i = 0; i < expected.Tables.Count; ++i)
51   {
52 11 AreEqual(expected.Tables[i], actual.Tables[i], message);
53   }
54   }
55  
56   /// <summary>
57   /// DataTable同士を比較します。
58   ///
59   /// カラムの並び順は比較に影響しません。
60   /// 数値は全てdecimalとして比較します。
61   /// </summary>
62   /// <param name="expected">予測値</param>
63   /// <param name="actual">実際値</param>
64 0 public static void AreEqual(DataTable expected, DataTable actual)
65   {
66   AreEqual(expected, actual, null);
67   }
68  
69   /// <summary>
70   /// DataTable同士を比較します。
71   ///
72   /// カラムの並び順は比較に影響しません。
73   /// 数値は全てdecimalとして比較します。
74   /// </summary>
75   /// <param name="expected">予測値</param>
76   /// <param name="actual">実際値</param>
77   /// <param name="message">assert失敗時のメッセージ</param>
78 12 public static void AreEqual(DataTable expected, DataTable actual, string message)
79   {
80 12 message = message == null ? string.Empty : message;
81 12 message = message + ":TableName=" + expected.TableName;
82 12 Assert.AreEqual(expected.Rows.Count, actual.Rows.Count, message + ":RowSize");
83 25 for (int i = 0; i < expected.Rows.Count; ++i)
84   {
85 13 DataRow expectedRow = expected.Rows[i];
86 13 DataRow actualRow = actual.Rows[i];
87 13 IList errorMessages = new ArrayList();
88 39 for (int j = 0; j < expected.Columns.Count; ++j)
89   {
90 26 try
91   {
92 26 string columnName = expected.Columns[j].ColumnName;
93 26 object expectedValue = expectedRow[columnName];
94 26 IColumnType ct = ColumnTypes.GetColumnType(expectedValue);
95 26 object actualValue = actualRow[DataTableUtil.GetColumn(actual, columnName)];
96 26 if (!ct.Equals1(expectedValue, actualValue))
97   {
98 0 Assert.AreEqual(
99   expectedValue,
100   actualValue,
101   message + ":Row=" + i + ":columnName=" + columnName
102   );
103   }
104   }
105   catch (AssertionException e)
106   {
107 0 errorMessages.Add(e.Message);
108   }
109   }
110 13 if (errorMessages.Count != 0)
111   {
112 0 Assert.Fail(message + IListInspector.ToString(errorMessages));
113   }
114   }
115   }
116  
117   /// <summary>
118   /// オブジェクトをDataSetと比較します。
119   ///
120   /// オブジェクトは、Bean、IDictionary、BeanのIList、IDictionaryのIListのいずれか でなければなりません。
121   ///
122   /// Beanの場合はプロパティ名を、Mapの場合はキーをカラム名として 比較します。
123   /// カラムの並び順は比較に影響しません。
124   /// 数値は全てdecimalとして比較します。
125   /// </summary>
126   /// <param name="expected">予測値</param>
127   /// <param name="actual">実際値</param>
128 0 public static void AreEqual(DataSet expected, object actual)
129   {
130   AreEqual(expected, actual, null);
131   }
132  
133   /// <summary>
134   /// オブジェクトをDataSetと比較します。
135   ///
136   /// オブジェクトは、object、IDictionary、objectのIList、IDictionaryのIListのいずれか でなければなりません。
137   ///
138   /// objectの場合はプロパティ名を、IDictionaryの場合はキーをカラム名として 比較します。
139   /// カラムの並び順は比較に影響しません。
140   /// </summary>
141   /// <param name="expected">予測値</param>
142   /// <param name="actual">実際値</param>
143   /// <param name="message">assert失敗時のメッセージ</param>
144 9 public static void AreEqual(DataSet expected, object actual, string message)
145   {
146 9 if (expected == null || actual == null)
147   {
148 1 Assert.AreEqual(expected, actual, message);
149 1 return;
150   }
151  
152 8 if (actual is object[])
153   {
154 0 AreEqual(expected, new ArrayList((object[]) actual), message);
155   }
156 8 else if (actual is IList)
157   {
158 1 IList actualList = (IList) actual;
159 1 Assert.IsTrue(actualList.Count != 0);
160 1 object actualItem = actualList[0];
161 1 if (actualItem is IDictionary)
162   {
163 1 AreDictionaryListEqual(expected, actualList, message);
164   }
165   else
166   {
167 0 AreBeanListEqual(expected, actualList, message);
168   }
169   }
170   else
171   {
172 7 if (actual is IDictionary)
173   {
174 1 AreDictionaryEqual(expected, (IDictionary) actual, message);
175   }
176   else
177   {
178 6 AreBeanEqual(expected, actual, message);
179   }
180   }
181   }
182  
183   /// <summary>
184   /// IDictionaryをDataSetと比較します。
185   ///
186   /// IDictionaryのキーをカラム名として比較します。
187   /// カラムの並び順は比較に影響しません。
188   /// </summary>
189   /// <param name="expected">予測値</param>
190   /// <param name="dictionary">実際値</param>
191   /// <param name="message">assert失敗時のメッセージ</param>
192 1 private static void AreDictionaryEqual(DataSet expected, IDictionary dictionary, string message)
193   {
194 1 DictionaryReader reader = new DictionaryReader(dictionary);
195 1 AreEqual(expected, reader.Read(), message);
196   }
197  
198   /// <summary>
199   /// IDictionaryのIListをDataSetと比較します。
200   ///
201   /// IDictionaryのキーをカラム名として比較します。
202   /// カラムの並び順は比較に影響しません。
203   /// </summary>
204   /// <param name="expected">予測値</param>
205   /// <param name="list">実際値</param>
206   /// <param name="message">assert失敗時のメッセージ</param>
207 1 private static void AreDictionaryListEqual(DataSet expected, IList list, string message)
208   {
209 1 DictionaryListReader reader = new DictionaryListReader(list);
210 1 AreEqual(expected, reader.Read(), message);
211   }
212  
213   /// <summary>
214   /// objectをDataSetと比較します。
215   ///
216   /// objectのプロパティ名をカラム名として比較します。
217   /// カラムの並び順は比較に影響しません。
218   /// </summary>
219   /// <param name="expected">予測値</param>
220   /// <param name="bean">実際値</param>
221   /// <param name="message">assert失敗時のメッセージ</param>
222 6 private static void AreBeanEqual(DataSet expected, object bean, string message)
223   {
224 6 BeanReader reader = new BeanReader(bean);
225 6 AreEqual(expected, reader.Read(), message);
226   }
227  
228   /// <summary>
229   /// objectのIListをDataSetと比較します。
230   ///
231   /// objectのプロパティ名をカラム名として比較します。
232   /// カラムの並び順は比較に影響しません。
233   /// </summary>
234   /// <param name="expected">予測値</param>
235   /// <param name="list">実際値</param>
236   /// <param name="message">assert失敗時のメッセージ</param>
237 0 private static void AreBeanListEqual(DataSet expected, IList list, string message)
238   {
239   BeanListReader reader = new BeanListReader(list);
240   AreEqual(expected, reader.Read(), message);
241   }
242  
243   #endregion
244   }
245   }
246