TestCase subclass: #CalendarioTest instanceVariableNames: '' classVariableNames: '' package: 'CalendarioFeriados-test'! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:07'! test04CalendarioConDomingosFeriadosMeDiceQueLunesNoEsFeriado | unCalendario unaFecha unFeriadoSemanal | unCalendario := Calendario new. unaFecha := Date year: 2020 month: 10 day: 19. "unCalendario agregarFeriadoSemanalEnDia: #Sunday." unFeriadoSemanal := FeriadoSemanal new. unFeriadoSemanal conDiaDeLaSemana: #Sunday. unCalendario agregarFeriado: unFeriadoSemanal. self shouldnt: (unCalendario estaFechaEsFeriado: unaFecha). ! ! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:02'! test01ParaCalendarioVacioNoHayFeriados | unCalendario unaFecha | unCalendario := Calendario new. unaFecha := Date year: 2017 month: 9 day: 24. self deny: (unCalendario estaFechaEsFeriado: unaFecha). ! ! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:07'! test06UnFeriadoPuntualNoEsFeriadoEnOtraFecha | unCalendario unaFecha unFeriadoPuntual | unCalendario := Calendario new. unaFecha := Date year: 2022 month: 07 day: 10. unFeriadoPuntual := FeriadoPuntual new conDia: 01 mes: 05 año: 2021. unCalendario agregarFeriado: unFeriadoPuntual. self deny: (unCalendario estaFechaEsFeriado: unaFecha). ! ! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:07'! test03CalendarioMeDejaIndicarDomingosComoFeriado | unCalendario unaFecha | unCalendario := Calendario new. unaFecha := Date year: 2020 month: 10 day: 18. unCalendario agregarFeriado: (FeriadoSemanal new conDiaDeLaSemana: #Sunday). self assert: (unCalendario estaFechaEsFeriado: unaFecha). ! ! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:07'! test02CalendarioMeDejaIndicarNavidadComoFeriado | unCalendario unaFecha | unCalendario := Calendario new. unaFecha := Date year: 2011 month: 12 day: 25. unCalendario agregarFeriado: (FeriadoAnual new conDia: 25 mes: 12). self should: (unCalendario estaFechaEsFeriado: unaFecha). ! ! !CalendarioTest methodsFor: 'tests' stamp: 'Seba 4/29/2021 22:07'! test05UnFEriadoPuntualEsFeriado | unCalendario unaFecha unFeriadoPuntual | unCalendario := Calendario new. unaFecha := Date year: 2021 month: 05 day: 01. unFeriadoPuntual := FeriadoPuntual new conDia: 01 mes: 05 año: 2021. unCalendario agregarFeriado: unFeriadoPuntual. self assert: (unCalendario estaFechaEsFeriado: unaFecha). ! ! Object subclass: #Calendario instanceVariableNames: 'feriados' classVariableNames: '' package: 'CalendarioFeriados'! !Calendario methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 20:57'! agregarFeriado: unFeriado feriados add: unFeriado. ! ! !Calendario methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 20:57'! initialize feriados := OrderedCollection new. ! ! !Calendario methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 20:58'! estaFechaEsFeriado: unaFecha ^ feriados anySatisfy: [ :unFeriado | unFeriado estaFechaEsFeriado: unaFecha ]. ! ! Object subclass: #FeriadoAnual instanceVariableNames: 'dia mes' classVariableNames: '' package: 'CalendarioFeriados'! !FeriadoAnual methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 20:58'! estaFechaEsFeriado: unaFecha ^ (unaFecha monthIndex = mes) & (unaFecha dayOfMonth = dia). ! ! !FeriadoAnual methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 22:07'! conDia: unDia mes: unMes dia := unDia. mes := unMes. ! ! Object subclass: #FeriadoPuntual instanceVariableNames: 'dia mes año' classVariableNames: '' package: 'CalendarioFeriados'! !FeriadoPuntual methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 22:07'! conDia: unDia mes: unMes año: unAño dia := unDia. mes := unMes. año := unAño.! ! !FeriadoPuntual methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 22:01'! estaFechaEsFeriado: unaFecha ^ (unaFecha dayOfMonth = dia) & (unaFecha monthIndex = mes) & (unaFecha year = año).! ! Object subclass: #FeriadoSemanal instanceVariableNames: 'diaDeLaSemana' classVariableNames: '' package: 'CalendarioFeriados'! !FeriadoSemanal methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 22:07'! conDiaDeLaSemana: unDiaDeLaSemana. diaDeLaSemana := unDiaDeLaSemana. ! ! !FeriadoSemanal methodsFor: 'as yet unclassified' stamp: 'Seba 4/29/2021 20:58'! estaFechaEsFeriado: unaFecha ^ (unaFecha weekday = diaDeLaSemana). ! !