You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.7 KiB
C#

using System;
using Xunit;
namespace DateTimeStudy.XUnitTest
{
public class DateTimeStudyTest:IDisposable
{
/// <summary>
/// 构造函数:单元测试前的准备
/// </summary>
public DateTimeStudyTest()
{
}
[Fact]
public void Test1()
{
Assert.Equal(1, 1.0);
}
[Fact]
public void CreateDateTimeDefaultTest()
{
DateTimeStudy sudy = new DateTimeStudy();
//无参时间:0001年1月1日 0时 0分 0秒
var time = sudy.CreateDateTime();
Assert.True(time.Year==1 && time.Month==1 && time.Day==1 && time.Hour==0 && time.Minute==0 && time.Second==0 && time.Millisecond==0);
Assert.True(time.Kind == DateTimeKind.Unspecified);
}
[Fact]
public void CreateDateTime4TicksTest()
{
DateTimeStudy sudy = new DateTimeStudy();
//UTC时间:2018-01-01
long ticks = 636503616000000000;
var time = sudy.CreateDateTime(ticks);
Assert.True(time.Year == 2018 && time.Month == 1 && time.Day == 1 && time.Hour == 0 && time.Minute == 0 && time.Second == 0 && time.Millisecond == 0);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time);
Assert.True(time.Kind == DateTimeKind.Unspecified);
}
[Fact]
public void CreateDateTimeTest4()
{
DateTimeStudy sudy = new DateTimeStudy();
//UTC时间:2018-01-01
long ticks = 636503616000000000;
var time = sudy.CreateDateTime(ticks, DateTimeKind.Utc);
var time2 = sudy.CreateDateTime(ticks, DateTimeKind.Local);
//这很奇怪:竟然相等
Assert.Equal<DateTime>(time, time2);
Assert.True(time.Year == 2018 && time.Month == 1 && time.Day == 1 && time.Hour == 0 && time.Minute == 0 && time.Second == 0 && time.Millisecond == 0);
Assert.True(time2.Year == 2018 && time2.Month == 1 && time2.Day == 1 && time2.Hour == 0 && time2.Minute == 0 && time2.Second == 0 && time2.Millisecond == 0);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc) == time);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time2);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc) == time2);
Assert.True(time.Kind == DateTimeKind.Utc);
Assert.True(time2.Kind == DateTimeKind.Local);
}
/// <summary>
/// 相当于析构函数:单元测试收尾清理
/// </summary>
public void Dispose()
{
}
}
}