package com.pingcap.community.blogserver.utils;


import com.pingcap.community.blogserver.util.TimeUtils;
import org.junit.Assert;
import org.junit.jupiter.api.*;

import java.text.SimpleDateFormat;
import java.util.TimeZone;

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TimeUtilsTest {

  private static final SimpleDateFormat sdf;

  static {
    sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
  }

  @Order(1)
  @Test
  public void getTodayStartTimeWithoutOffsetTest() {
    boolean isStartOfDayAtCST = sdf.format(TimeUtils.getTodayStartTimeWithoutOffset()).indexOf("00:00:00") > 0;
    Assertions.assertTrue(isStartOfDayAtCST);
  }

  @Order(2)
  @Test
  public void getTodayEndTimeWithoutOffsetTest() {
    boolean isEndOfDayAtCST = sdf.format(TimeUtils.getTodayEndTimeWithoutOffset()).indexOf("23:59:59") > 0;
    Assertions.assertTrue(isEndOfDayAtCST);
  }

  @Order(3)
  @Test
  public void getCurrentYearStartTimeWithoutOffsetTest() {
    boolean isStartOfYearAtCST = sdf.format(TimeUtils.getCurrentYearStartTimeWithoutOffset()).indexOf("01-01 00:00:00") > 0;
    Assertions.assertTrue(isStartOfYearAtCST);
  }

  @Order(4)
  @Test
  public void getCurrentYearEndTimeoutWithOffsetTest() {
    boolean isEndOfYearAtCST = sdf.format(TimeUtils.getCurrentYearEndTimeoutWithOffset()).indexOf("12-31 23:59:59") > 0;
    Assertions.assertTrue(isEndOfYearAtCST);
  }

}
