From VisualWorks® NonCommercial, 7.2 of November 3, 2003 on July 7, 2004 at 12:27:39 pm
GerenciadorDeSalasTest
Smalltalk
XProgramming.SUnit.TestCase
false
none
gerenciador nomeDaB3 localDaB3 capacidadeDaB3 b3 nomeDoAuditorio localDoAuditorio capacidadeDoAuditorio obsDoAuditorio auditorio quentura frescura cloneMalignoDaB3
NomeDoMeuPacoteAqui
NomeDoMeuPacoteAqui
GerenciadorDeSalasTest class instance creation
new
"Answer a newly created and initialized instance."
^super new initialize
GerenciadorDeSalasTest initialize-release
initialize
"Initialize a newly created instance. This method must answer the receiver."
^self
GerenciadorDeSalasTest testing
setUp
"sets some stuff up so that we can use it in all tests"
gerenciador := GerenciadorDeSalas new.
nomeDaB3 := 'B-3'.
localDaB3 := 'IME - Bloco B - Térreo'.
capacidadeDaB3 := 60.
b3 := Sala new.
b3 nome: nomeDaB3;
local: localDaB3;
capacidade: capacidadeDaB3; obs: nil.
nomeDoAuditorio := 'Auditório Antonio Giglioli'.
localDoAuditorio:= 'IME - Bloco A - Primeiro Andar'.
capacidadeDoAuditorio := 95.
obsDoAuditorio := 'Possui projetor LCD, rede com e sem fio e lousa eletrônica'.
auditorio := Sala new.
auditorio nome: nomeDoAuditorio;
local: localDoAuditorio;
capacidade: capacidadeDoAuditorio;
obs: obsDoAuditorio.
quentura := Sala new.
quentura nome: 'b-143'.
frescura := Sala new.
frescura nome: 'b-115'.
cloneMalignoDaB3 := Sala new.
cloneMalignoDaB3 nome: 'B-3'.
testaAdcionaMesmaSalaDuasVezes
self adicionaSalaAuditorio.
self should:
[self adicionaSalaAuditorio.]
raise: Exception.
testaAdcionaSalaComStringsEVeALista
self adicionaSalaAuditorioUsandoStrings.
self assert: gerenciador listaDeSalas size = 1.
self assert: (gerenciador listaDeSalas at: 1) nome = nomeDoAuditorio.
self assert: (gerenciador listaDeSalas at: 1) capacidade = capacidadeDoAuditorio.
self assert: (gerenciador listaDeSalas at: 1) local = localDoAuditorio.
self assert: (gerenciador listaDeSalas at: 1) obs = obsDoAuditorio.
testaAdcionaSalaEVeALista
self adicionaSalaB3.
self assert: gerenciador listaDeSalas size = 1.
self assert: (gerenciador listaDeSalas at: 1) = b3.
testaAdcionaSalasComMesmoNome
self adicionaSalaB3.
self should:
[self adicionaSalaB3UsandoStrings.]
raise: Exception.
testaAdcionaSalasComMesmoNome2
self adicionaSalaAuditorioUsandoStrings.
self should:
[self adicionaSalaAuditorioUsandoStrings.]
raise: Exception.
testaAdcionaSalasEVeALista
| count |
self adicionaSalaAuditorioUsandoStrings.
self adicionaSalaB3.
self adicionaSalaFrescura.
self adicionaSalaQuentura.
self assert: gerenciador listaDeSalas size = 4.
count := 4.
gerenciador listaDeSalas do:
[:sala |
sala nome = nomeDoAuditorio ifTrue: [count := count - 1.].
sala nome = nomeDaB3 ifTrue: [count := count - 1.].
sala nome = frescura nome ifTrue: [count := count - 1.].
sala nome = quentura nome ifTrue: [count := count - 1.].
].
self assert: count = 0.
testaAdcionaSalasRemoveEVeALista
| count |
self adicionaSalaAuditorioUsandoStrings.
self adicionaSalaB3.
self adicionaSalaFrescura.
self adicionaSalaQuentura.
gerenciador removeSalaChamada: nomeDoAuditorio.
self assert: gerenciador listaDeSalas size = 3.
count := 3.
gerenciador listaDeSalas do:
[:sala |
sala nome = nomeDaB3 ifTrue: [count := count - 1.].
sala nome = frescura nome ifTrue: [count := count - 1.].
sala nome = quentura nome ifTrue: [count := count - 1.].
].
self assert: count = 0.
testaBuscaReservasDeSalaQueNaoExisteMasTemMesmoNome
self adicionaSalaB3UsandoStrings.
gerenciador reservaSalaChamada: nomeDaB3
de: Timestamp now
a: (Timestamp now addSeconds: 60*60).
self should: [gerenciador reservasParaSala: cloneMalignoDaB3] raise: Exception.
testaCancelaDuasVezesAMesmaReserva
| comeco fim umaReserva |
self adicionaSalaFrescura.
comeco := Timestamp now.
fim := Timestamp now addSeconds: 60*60.
umaReserva := gerenciador
reservaSalaChamada: frescura nome
de: comeco
a: fim.
gerenciador cancelaReserva: umaReserva.
self should:
[gerenciador cancelaReserva: umaReserva.]
raise: Exception.
testaCancelaReservaQueNaoExiste
| umaReservaQueNaoExiste |
umaReservaQueNaoExiste:= Reserva new.
self should:
[gerenciador cancelaReserva: umaReservaQueNaoExiste.]
raise: Exception.
testaCriacaoDeReservaComComecoIgualAoFim
| time |
self adicionaSalaAuditorio.
time := (Timestamp now).
self should:
[gerenciador
reservaSalaChamada: nomeDoAuditorio
de: time
a: time.]
raise: Exception.
testaCriacaoDeReservaComFimAntesDoComeco
self adicionaSalaAuditorio.
self should:
[gerenciador
reservaSalaChamada: nomeDoAuditorio
de: (Timestamp now addSeconds: 60*60)
a: Timestamp now.]
raise: Exception.
testaCriacaoDeReservaComSalaJaCriada
| comeco fim umaReserva |
self adicionaSalaFrescura.
comeco := Timestamp now.
fim := Timestamp now addSeconds: 60*60.
umaReserva := gerenciador
reservaSalaChamada: frescura nome
de: comeco
a: fim.
self assert: umaReserva sala = frescura.
self assert: umaReserva inicio = comeco.
self assert: umaReserva fim = fim.
testaCriacaoDeReservaComStringsDaSala
| comeco fim umaReserva |
self adicionaSalaB3UsandoStrings.
comeco := Timestamp now.
fim := Timestamp now addSeconds: 60*60.
umaReserva := gerenciador
reservaSalaChamada: nomeDaB3
de: comeco
a: fim.
self assert: umaReserva sala nome = nomeDaB3.
self assert: umaReserva sala local = localDaB3.
self assert: umaReserva sala capacidade = capacidadeDaB3.
self assert: umaReserva sala obs = nil.
self assert: umaReserva inicio = comeco.
self assert: umaReserva fim = fim.
testaCriacaoDeReservaDeSalaQueNaoExiste
self should:
[gerenciador
reservaSalaChamada: 'nao existe'
de: Timestamp now
a: (Timestamp now addSeconds: 60).]
raise: Exception.
testaCriacaoDeSala
self assert: b3 nome = nomeDaB3.
self assert: b3 local = localDaB3.
self assert: b3 capacidade = capacidadeDaB3.
self assert: b3 observacoes = nil.
"aqui pode ter gente q chamou de observacoes"
self assert: auditorio obs = obsDoAuditorio.
testaImprimeReservasDeSalaQueNaoExiste
self should:
[gerenciador imprimeReservasDaSala: b3.]
raise: Exception.
testaImprimeReservasDeSalaQueNaoTemReservas
self adicionaSalaB3.
gerenciador imprimeReservasDaSala: b3.
testaRemoveMesmaSalaDuasVezes
self adicionaSalaAuditorio.
gerenciador removeSalaChamada: nomeDoAuditorio.
self should:
[gerenciador removeSalaChamada: nomeDoAuditorio.]
raise: Exception.
testaRemoveMesmaSalaDuasVezes2
self adicionaSalaCloneDaB3.
gerenciador removeSalaChamada: nomeDaB3.
self should:
[gerenciador removeSalaChamada: nomeDaB3.]
raise: Exception.
testaRemoveSalaQueNaoExiste
self should:
[gerenciador removeSalaChamada: nomeDoAuditorio.]
raise: Exception.
testaReservasComSobreposicao
| tempo1 tempo1f |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('11/11/2005 10:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
self should:
[gerenciador reservaSalaChamada: nomeDaB3
de: (tempo1 addSeconds: 60*60)
a: (tempo1f subtractSeconds: 60*60).]
raise: Exception.
testaReservasComSobreposicao2
| tempo1 tempo1f |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('11/11/2005 10:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
self should:
[gerenciador reservaSalaChamada: nomeDaB3
de: (tempo1 subtractSeconds: 60*60)
a: (tempo1 addSeconds: 60*60).]
raise: Exception.
testaReservasComSobreposicao3
| tempo1 tempo1f |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('11/11/2005 10:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
self should:
[gerenciador reservaSalaChamada: nomeDaB3
de: (tempo1f subtractSeconds: 60*60)
a: (tempo1f addSeconds: 60*60).]
raise: Exception.
testaReservasComSobreposicaoCancelando
| tempo1 tempo1f reserva1 |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('5/9/2005 6:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('5/9/2005 11:00' readStream).
reserva1 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
gerenciador cancelaReserva: reserva1.
gerenciador reservaSalaChamada: nomeDaB3
de: (tempo1 subtractSeconds: 60*60)
a: (tempo1f addSeconds: 60*60).
testaVariasReservasECancela
| count tempo1 reserva1 tempo2 reserva2 tempo3 reserva3 |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
reserva1 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: (tempo1 addSeconds: 60*60).
tempo2 := Timestamp readFromDateAndTime: ('11/2/2005 8:00' readStream).
reserva2 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo2
a: (tempo2 addSeconds: 60*60).
tempo3 := Timestamp readFromDateAndTime: ('6/6/2005 9:27' readStream).
reserva3 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo3
a: (tempo3 addSeconds: 60*60).
gerenciador cancelaReserva: reserva1.
self assert: (gerenciador reservasParaSala: b3) size = 2.
count := 2.
(gerenciador reservasParaSala: b3) do:
[:reserva |
reserva = reserva2 ifTrue: [count := count -1].
reserva = reserva3 ifTrue: [count := count -1].
].
self assert: count = 0.
testaVariasReservasEImprime
| tempo1 tempo2 tempo3 tempo1f |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('11/11/2005 10:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
tempo2 := Timestamp readFromDateAndTime: ('2/20/2005 8:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo2
a: (tempo2 addSeconds: 60*60).
tempo3 := Timestamp readFromDateAndTime: ('6/6/2005 9:27' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo3
a: (tempo3 addSeconds: 60*60).
gerenciador imprimeReservasDaSala: b3.
testaVariasReservasERemoveASala
| tempo1 tempo2 tempo3 tempo1f |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
tempo1f := Timestamp readFromDateAndTime: ('11/11/2005 10:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: tempo1f.
tempo2 := Timestamp readFromDateAndTime: ('2/20/2005 8:00' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo2
a: (tempo2 addSeconds: 60*60).
tempo3 := Timestamp readFromDateAndTime: ('6/6/2005 9:27' readStream).
gerenciador reservaSalaChamada: nomeDaB3
de: tempo3
a: (tempo3 addSeconds: 60*60).
gerenciador removeSalaChamada: nomeDaB3.
self should:
[gerenciador reservasParaSala: b3]
raise: Exception.
testaVariasReservasEVeALista
| count tempo1 reserva1 tempo2 reserva2 tempo3 reserva3 |
self adicionaSalaB3.
tempo1 := Timestamp readFromDateAndTime: ('11/1/2005 10:00' readStream).
reserva1 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo1
a: (tempo1 addSeconds: 60*60).
tempo2 := Timestamp readFromDateAndTime: ('11/2/2005 8:00' readStream).
reserva2 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo2
a: (tempo2 addSeconds: 60*60).
tempo3 := Timestamp readFromDateAndTime: ('6/6/2005 9:27' readStream).
reserva3 := gerenciador reservaSalaChamada: nomeDaB3
de: tempo3
a: (tempo3 addSeconds: 60*60).
self assert: (gerenciador reservasParaSala: b3) size = 3.
count := 3.
(gerenciador reservasParaSala: b3) do:
[:reserva |
reserva = reserva1 ifTrue: [count := count -1].
reserva = reserva2 ifTrue: [count := count -1].
reserva = reserva3 ifTrue: [count := count -1].
].
self assert: count = 0.
GerenciadorDeSalasTest private
adicionaSalaAuditorio
gerenciador adicionaSala: auditorio.
adicionaSalaAuditorioUsandoStrings
gerenciador adicionaSalaChamada: nomeDoAuditorio noLocal: localDoAuditorio comCapacidade: capacidadeDoAuditorio obs: obsDoAuditorio.
adicionaSalaB3
gerenciador adicionaSala: b3.
adicionaSalaB3UsandoStrings
gerenciador adicionaSalaChamada: nomeDaB3 noLocal: localDaB3 comCapacidade: capacidadeDaB3 obs: nil.
adicionaSalaCloneDaB3
gerenciador adicionaSala: cloneMalignoDaB3.
adicionaSalaFrescura
gerenciador adicionaSala: frescura.
adicionaSalaQuentura
gerenciador adicionaSala: quentura.