//#define mUnit
// 以下代码由 Microsoft Visual Studio 2005 生成。
// 测试所有者应该检查每个测试的有效性。
using System;
using System.Text;
using System.Collections.Generic;
using zDit.Common.Chinese;
using System.IO;
#if mUnit
using Microsoft.VisualStudio.TestTools.UnitTesting;
#else
using NUnit.Framework;
using TestMethod = NUnit.Framework.TestAttribute;
using TestClass = NUnit.Framework.TestFixtureAttribute;
using ClassInitialize = NUnit.Framework.TestFixtureSetUpAttribute;
using ClassCleanup = NUnit.Framework.TestFixtureTearDownAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
#endif
namespace TestChineseCalendar
{
/// <summary>
///这是 zDit.Common.Chinese.ChineseCalendar 的测试类,旨在
///包含所有 zDit.Common.Chinese.ChineseCalendar 单元测试
///</summary>
[TestClass()]
public class ChineseCalendarTest
{
static List<string> datetimes = new List<string>();
#if mUnit
private TestContext testContextInstance;
/// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#endif
#region 附加测试属性
//
//编写测试时,可使用以下附加属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
//
[ClassInitialize()]
public static void MyClassInitialize(
#if mUnit
TestContext testContext
#endif
)
{
//Environment.CurrentDirectory
StreamReader sdr = new StreamReader(@"E:/zDit/zDit.Common/TestChineseCalendar/TestDateTimes.txt");
string line = sdr.ReadLine(); //第一行为说明,不用测试
while ((line = sdr.ReadLine()) != null)
{
datetimes.Add(line);
}
}
//
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
//
[ClassCleanup()]
public static void MyClassCleanup()
{
}
//
//使用 TestInitialize 在运行每个测试前先运行代码
//
[TestInitialize()]
public void MyTestInitialize()
{
}
//
//使用 TestCleanup 在运行完每个测试后运行代码
//
[TestCleanup()]
public void MyTestCleanup()
{
}
//
#endregion
/// <summary>
///FromLunarDate (int, int, int, bool) 的测试
///</summary>
[TestMethod()]
public void FromLunarDateTest()
{
int year = 2006; // TODO: 初始化为适当的值
int month = 8; // TODO: 初始化为适当的值
int day = 1; // TODO: 初始化为适当的值
bool IsLeapMonth = true; // TODO: 初始化为适当的值
ChineseCalendar expected = new ChineseCalendar(new DateTime(2006,9,22,0,0,0));
ChineseCalendar actual;
actual = zDit.Common.Chinese.ChineseCalendar.FromLunarDate(year, month, day, IsLeapMonth);
Assert.AreEqual(expected.SolarDate, actual.SolarDate, "zDit.Common.Chinese.ChineseCalendar.FromLunarDate 未返回所需的值。");
//Assert.Inconclusive("验证此测试方法的正确性。");
}
/// <summary>
///FromLunarDate (int, int, int, bool) 的测试
///</summary>
[TestMethod()]
public void FromLunarDateTestFile()
{
foreach (string value in datetimes)
{
string[] ss = value.Split(',');
int year = int.Parse(ss[0]);
int month = int.Parse(ss[1]);
int day = int.Parse(ss[2]);
bool IsLeapMonth = false;
ChineseCalendar expected = new ChineseCalendar(new DateTime(int.Parse(ss[3]), int.Parse(ss[4]), int.Parse(ss[5]), 0, 0, 0));
ChineseCalendar actual;
actual = zDit.Common.Chinese.ChineseCalendar.FromLunarDate(year, month, day, IsLeapMonth);
Assert.AreEqual(expected.SolarDate, actual.SolarDate, "zDit.Common.Chinese.ChineseCalendar.FromLunarDate 未返回所需的值。");
}
//Assert.Inconclusive("验证此测试方法的正确性。");
}
/// <summary>
///GetDateFromLunarDate (int, int, int, bool) 的测试
///</summary>
[TestMethod()]
public void GetDateFromLunarDateTest()
{
int year = 0; // TODO: 初始化为适当的值
int month = 0; // TODO: 初始化为适当的值
int day = 0; // TODO: 初始化为适当的值
bool IsLeapMonth = false; // TODO: 初始化为适当的值
DateTime expected = new DateTime();
DateTime actual;
actual = zDit.Common.Chinese.ChineseCalendar.GetDateFromLunarDate(year, month, day, IsLeapMonth);
Assert.AreEqual(expected, actual, "zDit.Common.Chinese.ChineseCalendar.GetDateFromLunarDate 未返回所需的值。");
//Assert.Inconclusive("验证此测试方法的正确性。");
}
}
}