Untitled
unknown
plain_text
3 years ago
14 kB
1
Indexable
Never
package demo; import static org.junit.jupiter.api.Assertions.*; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; class demoTest { main test = null; @BeforeEach void setUp() throws Exception { test = new main(); } @AfterEach void tearDown() throws Exception { test = null; } @Test void testA_1() { String input = "2022/03/15"; String expect_output = "Sun Mon Tue Wed Thu Fri Sat\r\n" + " 1 2 3 4 5 \r\n" + " 6 7 8 9 10 11 12 \r\n" + " 13 14 15 16 17 18 19 \r\n" + " 20 21 22 23 24 25 26 \r\n" + " 27 28 29 30 31 \r\n"; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testA_1\n"); System.out.println("請輸入欲查詢日期: "); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printCalender(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testA_2() { String input = "2022/02/15"; String expect_output = "Sun Mon Tue Wed Thu Fri Sat\r\n" + " 1 2 3 4 5 \r\n" + " 6 7 8 9 10 11 12 \r\n" + " 13 14 15 16 17 18 19 \r\n" + " 20 21 22 23 24 25 26 \r\n" + " 27 28 \r\n"; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testA_2\n"); System.out.println("請輸入欲查詢日期: "); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printCalender(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testB_1() { int input = 2022; String expect_output = "2022是壬寅年,屬虎\n"; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); //ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testB_1\n"); //System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printZodiac(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testB_2() { int input = 2021; String expect_output = "2021是辛丑年,屬牛\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); //ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testB_2\n"); //System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printZodiac(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testC_1() { String input = "2022-03-15"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long time = 0; try { Date targerDay = sdf.parse(input); long targetTime = targerDay.getTime(); long todaytime = new Date().getTime(); long t = todaytime - todaytime % (1000 * 60 * 60 * 24) - 28800000; time = Math.abs(targetTime - t); String today = sdf.format(new Date()); //System.out.println("今天是" + today); } catch (ParseException e) {} String expect_output = "距離" + input + "有" + (time) / 1000 / 60 / 60 / 24 + "天\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testC_1\n"); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printDays(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testC_2() { String input = "2022-03-18"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long time = 0; try { Date targerDay = sdf.parse(input); long targetTime = targerDay.getTime(); long todaytime = new Date().getTime(); long t = todaytime - todaytime % (1000 * 60 * 60 * 24) - 28800000; time = Math.abs(targetTime - t); String today = sdf.format(new Date()); //System.out.println("今天是" + today); } catch (ParseException e) {} String expect_output = "距離" + input + "有" + (time) / 1000 / 60 / 60 / 24 + "天\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testC_2\n"); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printDays(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testD_1() { int input = 2; Calendar today = Calendar.getInstance(); today.add(Calendar.DATE, input); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String expect_output = "往後" + input + "天是" + sdf.format(today.getTime()) + "\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); //ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testD_1\n"); //System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printAfterDays(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testD_2() { int input = 0; //今天 Calendar today = Calendar.getInstance(); today.add(Calendar.DATE, input); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String expect_output = "往後" + input + "天是" + sdf.format(today.getTime()) + "\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); //ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testD_2\n"); //System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.printAfterDays(input); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testAll_1() { String inputc = "2022-03-15"; String inputd = "2"; String input = //A "A\n" + "2022/03/15\r\n" + //B "B\n" + "2022\n" + //C "C\n" + inputc + "\n" + //D "D\n" + inputd + "\n" + //E "E\n"; //A //B //C SimpleDateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd"); long timec = 0; try { Date targerDayc = sdfc.parse(inputc); long targetTimec = targerDayc.getTime(); long todaytimec = new Date().getTime(); long tc = todaytimec - todaytimec % (1000 * 60 * 60 * 24) - 28800000; timec = Math.abs(targetTimec - tc); String todayc = sdfc.format(new Date()); //System.out.println("今天是" + today); } catch (ParseException e) {} //D Calendar todayd = Calendar.getInstance(); todayd.add(Calendar.DATE, Integer.parseInt(inputd)); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); //E String expect_output = "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //A "請輸入欲查詢日期(年/月/日): \r\n"+ "Sun Mon Tue Wed Thu Fri Sat\r\n" + " 1 2 3 4 5 \r\n" + " 6 7 8 9 10 11 12 \r\n" + " 13 14 15 16 17 18 19 \r\n" + " 20 21 22 23 24 25 26 \r\n" + " 27 28 29 30 31 \r\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //B "請輸入欲查詢年: \r\n"+ "2022是壬寅年,屬虎\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //C "請輸入您要算的日期 (格式:yyyy-MM-dd)\r\n" + "距離" + inputc + "有" + (timec) / 1000 / 60 / 60 / 24 + "天\r\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //D "請輸入往後推算的天數: \r\n" + "往後" + inputd + "天是" + sdfd.format(todayd.getTime()) + "\r\n" + //E "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + "離開系統\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testAll_1\n"); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.main(null); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } @Test void testAll_2() { String inputc = "2022-03-18"; String inputd = "0"; String input = //A "A\n" + "2022/02/15\r\n" + //B "B\n" + "2021\n" + //C "C\n" + inputc + "\n" + //D "D\n" + inputd + "\n" + //E "E\n"; //A //B //C SimpleDateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd"); long timec = 0; try { Date targerDayc = sdfc.parse(inputc); long targetTimec = targerDayc.getTime(); long todaytimec = new Date().getTime(); long tc = todaytimec - todaytimec % (1000 * 60 * 60 * 24) - 28800000; timec = Math.abs(targetTimec - tc); String todayc = sdfc.format(new Date()); //System.out.println("今天是" + today); } catch (ParseException e) {} //D Calendar todayd = Calendar.getInstance(); todayd.add(Calendar.DATE, Integer.parseInt(inputd)); SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); //E String expect_output = "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //A "請輸入欲查詢日期(年/月/日): \r\n"+ "Sun Mon Tue Wed Thu Fri Sat\r\n" + " 1 2 3 4 5 \r\n" + " 6 7 8 9 10 11 12 \r\n" + " 13 14 15 16 17 18 19 \r\n" + " 20 21 22 23 24 25 26 \r\n" + " 27 28 \r\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //B "請輸入欲查詢年: \r\n"+ "2021是辛丑年,屬牛\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //C "請輸入您要算的日期 (格式:yyyy-MM-dd)\r\n" + "距離" + inputc + "有" + (timec) / 1000 / 60 / 60 / 24 + "天\r\n" + "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + //D "請輸入往後推算的天數: \r\n" + "往後" + inputd + "天是" + sdfd.format(todayd.getTime()) + "\r\n" + //E "輸入指令號碼或 E(結束使用)?\r\n" + "\r\n" + "輸入指令: \r\n" + "1) A 顯示該月月曆\r\n" + "2) B 西元轉換干支、生肖\r\n" + "3) C 計算天數\r\n" + "4) D 計算日期\r\n" + "5) E 結束使用\r\n" + "離開系統\r\n" ; ByteArrayOutputStream testOut = new ByteArrayOutputStream(); ByteArrayInputStream testIn = new ByteArrayInputStream(input.getBytes()); System.out.println("this is testAll_2\n"); System.setIn(testIn); System.setOut(new PrintStream(testOut)); test.main(null); String output = new String(testOut.toByteArray()); assertEquals(expect_output, output); } }