package Ġnet . jp . v ss . visit scheduler . domain . schedules . calculate Ċ Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Month Ċ import Ġnet . jp . v ss . visit scheduler . domain . schedules . Schedule Ċ import Ġnet . jp . v ss . visit scheduler . domain . sch ools . School Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . catch Throwable Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** ĠVisit Schedule Calculator Ġãģ® ĠTest . Ġ*/ Ċ class ĠVisit Schedule Calculator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Force Visit Dates () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 1 , Ġ 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) Ġ// Ġãĥ Ĩ ãĤ¹ãĥĪ å¯¾è±¡ ãģ® æĹ¥ ä»ĺ ãĤĴ çµ ŀ ãĤĭ ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġsut . set Force Visit Dates () ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Target Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 4 )))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Force Visit Dates _ Already Setting Force Visit Date () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 1 , Ġ 1 )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġcatch Throwable Ġ{ Ġsut . set Force Visit Dates () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). isInstanceOf Satisf ying ( IllegalArgumentException :: class . java ) Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo (" è¤ĩ æķ° ãģ® åŃ¦ æł¡ ãģ§ Ġ 2 0 1 9 - 0 1 - 0 5 Ġãģ« å¯¾ ãģĹãģ¦ å¼ · åĪ¶ è¨ ª åķı æĹ¥ ãģ¨ãģĹãģ¦ è¨Ńå®ļ ãģĹãģ¦ãģĦãģ¾ãģĻ ãĢĤ è¦ĭ çĽ´ ãģĹãģ¦ãģıãģłãģķãģĦ ãĢĤ ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" choice School Schedule Ġ 3 ãģ¤ ãģ® åŃ¦ æł¡ ãģ§ åĲĮ ãģĺ æĹ¥ ãĤĴ åĦ ª åħĪ ãģ« ãģĹãģ¦ ãģĬ ãĤĬ ãĢģ ä»¥ éĻį ãģ® 3 æĹ¥ éĸĵ ãĤĴ åħĥ ãģ« è¨Ńå®ļ æł¡ ãĤĴ åĪ¤ å®ļ ãĢĤ ãĥĿ ãĤ¤ãĥ³ ãĥĪ ãģĮ ä¸Ģ çķª å°ı ãģķãģĦ åŃ¦ æł¡ ãĤĴ æİ ¡ çĶ¨ ") ĊĠĠĠ Ġfun Ġtest Choice School Schedule 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 3 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 3 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 , Ġschool Schedule 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 1 0 , Ġ 1 4 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) Ġ// Ġãĥ Ĩ ãĤ¹ãĥĪ å¯¾è±¡ ãģ® æĹ¥ ä»ĺ ãĤĴ çµ ŀ ãĤĭ ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . choice School Schedule ( school Schedules , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). isEqualTo ( school Schedule 3 ) Ġ// Ġ 3 ãģ¤ çĽ® ãģ® åŃ¦ æł¡ ãģĮ ä»ĸ ãģ® åŃ¦ æł¡ ãģ« æ¯Ķ ãģ¹ ãģ¦ ãĥĿ ãĤ¤ãĥ³ ãĥĪ ãģĮ ä¸Ģ çķª å°ı ãģķ ãģĭ ãģ£ãģŁ ãģ®ãģ§ æİ ¡ çĶ¨ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" choice School Schedule Ġ 3 ãģ¤ ãģ® åŃ¦ æł¡ ãģ§ åĲĮ ãģĺ æĹ¥ ãĤĴ åĦ ª åħĪ ãģ« ãģĹãģ¦ ãģĬ ãĤĬ ãĢģ ä»¥ éĻį ãģ® 3 æĹ¥ éĸĵ ãĤĴ åħĥ ãģ« è¨Ńå®ļ æł¡ ãĤĴ åĪ¤ å®ļ ãĢĤ ãĥĿ ãĤ¤ãĥ³ ãĥĪ ãģĮ åĲĮ ãģĺ ãģª ãģ®ãģ§ ä¸¦ ãģ³ éłĨ ãģ§ æ±º å®ļ ") ĊĠĠĠ Ġfun Ġtest Choice School Schedule 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 3 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 3 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 , Ġschool Schedule 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 1 0 , Ġ 1 4 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) Ġ// Ġãĥ Ĩ ãĤ¹ãĥĪ å¯¾è±¡ ãģ® æĹ¥ ä»ĺ ãĤĴ çµ ŀ ãĤĭ ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . choice School Schedule ( school Schedules , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). isEqualTo ( school Schedule 1 ) Ġ// Ġ ä¸¦ ãģ³ éłĨ ãģ§ 1 ãģ¤ ãĤģ ãģ® åŃ¦ æł¡ ãģĮ æİ ¡ çĶ¨ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" choice School Schedule Ġ æľĢ çµĤ æĹ¥ ãģ«å¯¾ ãģĹãģ¦ 3 ãģ¤ ãģ® åŃ¦ æł¡ ãģ§ åĲĮ ãģĺ æĹ¥ ãĤĴ åĦ ª åħĪ ãģ« ãģĹãģ¦ãģĦãĤĭ ") ĊĠĠĠ Ġfun Ġtest Choice School Schedule 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 3 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 3 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 , Ġschool Schedule 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 1 0 , Ġ 1 4 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) Ġ// Ġãĥ Ĩ ãĤ¹ãĥĪ å¯¾è±¡ ãģ® æĹ¥ ä»ĺ ãĤĴ çµ ŀ ãĤĭ ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . choice School Schedule ( school Schedules , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). isEqualTo ( school Schedule 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Priority Visit Dates () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 1 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule 2 Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 2 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule 1 , Ġschool Schedule 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 2 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) Ġ// Ġãĥ Ĩ ãĤ¹ãĥĪ å¯¾è±¡ ãģ® æĹ¥ ä»ĺ ãĤĴ çµ ŀ ãĤĭ ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġsut . set Priority Visit Dates () ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Target Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 7 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 9 )))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 ))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åĲĦ åŃ¦ æł¡ ãģ® Ġverify ĊĠĠĠĠĠĠĠ Ġval Ġexpected Visit Schedule 1 Ġ= ĠVisit Schedule . of ( school Schedule 1 ) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule 1 . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 6 ))) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule 1 . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 8 ))) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Visit Schedule 2 Ġ= ĠVisit Schedule . of ( school Schedule 2 ) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule 1 . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Schedule Map ()). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( expected Visit Schedule 1 . school Code Ġto Ġexpected Visit Schedule 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Visit Schedule 2 . school Code Ġto Ġexpected Visit Schedule 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Visit Dates () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĠlistOf (), ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 2 , Ġ 1 4 )) ĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 0 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġsut . set Visit Dates () ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Target Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 9 )))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 0 ))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åĲĦ åŃ¦ æł¡ ãģ® Ġverify ĊĠĠĠĠĠĠĠ Ġval Ġexpected Visit Schedule Ġ= ĠVisit Schedule . of ( school Schedule ) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 ))) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 0 ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Schedule Map ()). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( expected Visit Schedule . school Code Ġto Ġexpected Visit Schedule )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Visit Dates _ Already Set Visit Date () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 1 ))), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 1 9 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( listOf ()), Ġschool Schedules , ĠVisit Rules ( 2 , Ġ 1 4 )) ĊĠĠĠĠĠĠĠ Ġsut . set Force Visit Dates () Ġ// Ġ å¼ · åĪ¶ è¨ ª åķı æĹ¥ ãĤĴè¨Ńå®ļ ĊĠĠĠĠĠĠĠ Ġval Ġvisit Target Dates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 0 ))) ĊĠĠĠĠĠĠĠ Ġsut . set Visit Target Dates ( visit Target Dates ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġsut . set Visit Dates () ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Target Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 8 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 9 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 2 0 )))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Dates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 1 ))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åĲĦ åŃ¦ æł¡ ãģ® Ġverify ĊĠĠĠĠĠĠĠ Ġval Ġexpected Visit Schedule Ġ= ĠVisit Schedule . of ( school Schedule ) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ Ġexpected Visit Schedule . add Visit Date ( Schedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 , Ġ 3 1 ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( sut . get Visit Schedule Map ()). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( expected Visit Schedule . school Code Ġto Ġexpected Visit Schedule )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Calculate () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġworker Schedule Ġ= ĠWorker Schedule ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 2 1 )))) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 1 9 , Ġ 1 2 , Ġ 2 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 2 0 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworker Schedule , Ġschool Schedules , ĠVisit Rules ( 1 4 , Ġ 1 5 )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġsut . calculate () ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( actual [ 0 ]. get Visit Date List ()). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Schedule . Schedule Date ( LocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 2 0 , Ġ 1 , Ġ 2 2 )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Constructor _ Invalid Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġex clusion Dates Ġ= Ġ( 1 .. 3 0 ). toList (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchedule . Schedule Date ( LocalDate . of ( 2 0 2 0 , ĠMonth . J AN U ARY , Ġit )) ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedule Ġ= ĠSchool Schedule ( School . School Code (" CODE - 0 1 "), ĠlistOf (), Ġnull , ĠlistOf (), ĠlistOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġschool Schedules Ġ= ĠlistOf ( school Schedule ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexercise ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġcatch Throwable Ġ{ ĠVisit Schedule Calculator ( Schedule . Target Year And Month (" 2 0 2 0 - 0 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWorker Schedule ( ex clusion Dates ), Ġschool Schedules , ĠVisit Rules ( 1 4 , Ġ 1 5 )) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġverify ĊĠĠĠĠĠĠĠ ĠassertThat ( actual ). isInstanceOf Satisf ying ( IllegalStateException :: class . java ) Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo (" è¨ ª åķı åı¯èĥ½ æĹ¥ ãģĮ è¶³ ãĤĬ ãģªãģĦ ãģ®ãģ§ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãĤĴ ç«ĭ ãģ¦ ãĤī ãĤĮ ãģ¾ãģĽãĤĵ ãĢĤ ") Ġ} ĊĠĠĠ Ġ} Ċ } Ċ