36 Star 430 Fork 70

GVPdromara/carbon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.workflow
calendar
lang
.editorconfig
.gitignore
.golangci.yml
LICENSE
README.cn.md
README.jp.md
README.md
boundary.go
boundary_bench_test.go
boundary_example_test.go
boundary_unit_test.go
calendar.go
calendar_bench_test.go
calendar_example_test.go
calendar_unit_test.go
carbon.go
carbon_bench_test.go
carbon_example_test.go
carbon_unit_test.go
comparer.go
comparer_bench_test.go
comparer_example_test.go
comparer_unit_test.go
constants.go
constellation.go
constellation_bench_test.go
constellation_example_test.go
constellation_unit_test.go
creator.go
creator_bench_test.go
creator_example_test.go
creator_unit_test.go
default.go
default_bench_test.go
default_example_test.go
default_unit_test.go
difference.go
difference_bench_test.go
difference_example_test.go
difference_unit_test.go
errors.go
extremum.go
extremum_bench_test.go
extremum_example_test.go
extremum_unit_test.go
frozen.go
frozen_bench_test.go
frozen_example_test.go
frozen_unit_test.go
getter.go
getter_bench_test.go
getter_example_test.go
getter_unit_test.go
go.mod
go.sum
helper.go
language.go
language_bench_test.go
language_example_test.go
language_unit_test.go
outputer.go
outputer_bench_test.go
outputer_example_test.go
outputer_unit_test.go
parser.go
parser_bench_test.go
parser_example_test.go
parser_unit_test.go
season.go
season_bench_test.go
season_example_test.go
season_unit_test.go
setter.go
setter_bench_test.go
setter_example_test.go
setter_unit_test.go
traveler.go
traveler_bench_test.go
traveler_example_test.go
traveler_unit_test.go
type_bench_test.go
type_builtin.go
type_carbon.go
type_example_test.go
type_format.go
type_layout.go
type_timestamp.go
type_unit_test.go
克隆/下载
carbon_unit_test.go 4.22 KB
一键复制 编辑 原始数据 按行查看 历史
kuafuRace 提交于 1个月前 . v2.6.4
package carbon
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestNewCarbon(t *testing.T) {
loc, _ := time.LoadLocation(PRC)
t1, _ := time.Parse(DateTimeLayout, "2020-08-05 13:14:15")
t2, _ := time.ParseInLocation(DateTimeLayout, "2020-08-05 13:14:15", loc)
t.Run("zero time without timezone", func(t *testing.T) {
c := NewCarbon()
assert.Equal(t, "0001-01-01 00:00:00 +0000 UTC", c.ToString())
assert.Equal(t, time.Time{}.String(), c.ToString())
})
t.Run("zero time with timezone", func(t *testing.T) {
c := NewCarbon().SetLocation(loc)
assert.Equal(t, "0001-01-01 08:05:43 +0805 LMT", c.ToString())
assert.Equal(t, time.Time{}.In(loc).String(), c.ToString())
})
t.Run("valid time without timezone", func(t *testing.T) {
c := NewCarbon(t1)
assert.Equal(t, "2020-08-05 13:14:15 +0000 UTC", c.ToString())
assert.Equal(t, t1.String(), c.ToString())
})
t.Run("valid time with timezone", func(t *testing.T) {
c := NewCarbon(t2)
assert.Equal(t, "2020-08-05 13:14:15 +0800 CST", c.ToString())
assert.Equal(t, t2.String(), c.ToString())
})
}
func TestCarbon_Copy(t *testing.T) {
t.Run("nil carbon", func(t *testing.T) {
oldCarbon := Now()
oldCarbon = nil
newCarbon := oldCarbon.Copy()
assert.Empty(t, oldCarbon.ToString())
assert.Empty(t, newCarbon.ToString())
oldCarbon = oldCarbon.AddDay()
assert.Empty(t, oldCarbon.ToString())
assert.Empty(t, newCarbon.ToString())
})
t.Run("copy time", func(t *testing.T) {
oldCarbon := Parse("2020-08-05")
newCarbon := oldCarbon.Copy()
assert.Equal(t, "2020-08-05 00:00:00 +0000 UTC", oldCarbon.ToString())
assert.Equal(t, "2020-08-05 00:00:00 +0000 UTC", newCarbon.ToString())
oldCarbon = oldCarbon.AddDay()
assert.Equal(t, "2020-08-06 00:00:00 +0000 UTC", oldCarbon.ToString())
assert.Equal(t, "2020-08-05 00:00:00 +0000 UTC", newCarbon.ToString())
})
t.Run("copy timezone", func(t *testing.T) {
oldCarbon := Parse("2020-08-05")
newCarbon := oldCarbon.Copy()
assert.Equal(t, UTC, oldCarbon.Timezone())
assert.Equal(t, UTC, newCarbon.Timezone())
oldCarbon = oldCarbon.SetTimezone(PRC)
assert.Equal(t, PRC, oldCarbon.Timezone())
assert.Equal(t, UTC, newCarbon.Timezone())
newCarbon = newCarbon.SetTimezone(Japan)
assert.Equal(t, PRC, oldCarbon.Timezone())
assert.Equal(t, Japan, newCarbon.Timezone())
})
t.Run("copy layout", func(t *testing.T) {
oldCarbon := Parse("2020-08-05")
newCarbon := oldCarbon.Copy()
assert.Equal(t, "2006-01-02", oldCarbon.CurrentLayout())
assert.Equal(t, "2006-01-02", newCarbon.CurrentLayout())
oldCarbon = oldCarbon.SetLayout(DateTimeLayout)
assert.Equal(t, DateTimeLayout, oldCarbon.CurrentLayout())
assert.Equal(t, DateLayout, newCarbon.CurrentLayout())
newCarbon = newCarbon.SetLayout(RFC1036Layout)
assert.Equal(t, DateTimeLayout, oldCarbon.CurrentLayout())
assert.Equal(t, RFC1036Layout, newCarbon.CurrentLayout())
})
t.Run("copy weekStartsAt", func(t *testing.T) {
oldCarbon := Parse("2020-08-05")
newCarbon := oldCarbon.Copy()
assert.Equal(t, DefaultWeekStartsAt, oldCarbon.WeekStartsAt())
assert.Equal(t, DefaultWeekStartsAt, newCarbon.WeekStartsAt())
oldCarbon = oldCarbon.SetWeekStartsAt(Monday)
assert.Equal(t, Monday, oldCarbon.WeekStartsAt())
assert.Equal(t, DefaultWeekStartsAt, newCarbon.WeekStartsAt())
newCarbon = newCarbon.SetWeekStartsAt(Sunday)
assert.Equal(t, Monday, oldCarbon.WeekStartsAt())
assert.Equal(t, Sunday, newCarbon.WeekStartsAt())
})
t.Run("copy lang", func(t *testing.T) {
oldCarbon := Parse("2020-08-05")
newCarbon := oldCarbon.Copy()
assert.Equal(t, "August", oldCarbon.ToMonthString())
assert.Equal(t, "August", newCarbon.ToMonthString())
oldCarbon.SetLocale("zh-CN")
assert.Equal(t, "八月", oldCarbon.ToMonthString())
assert.Equal(t, "August", newCarbon.ToMonthString())
newCarbon.SetLocale("jp")
assert.Equal(t, "八月", oldCarbon.ToMonthString())
assert.Equal(t, "8月", newCarbon.ToMonthString())
})
t.Run("copy error", func(t *testing.T) {
oldCarbon := Parse("xxx")
newCarbon := oldCarbon.Copy()
assert.True(t, oldCarbon.HasError())
assert.True(t, newCarbon.HasError())
newCarbon = newCarbon.SetLayout("xxx")
assert.True(t, oldCarbon.HasError())
assert.True(t, newCarbon.HasError())
})
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dromara/carbon.git
git@gitee.com:dromara/carbon.git
dromara
carbon
carbon
v2.6.4

搜索帮助