Skip to content

Instantly share code, notes, and snippets.

View jbrains's full-sized avatar

J. B. Rainsberger jbrains

View GitHub Profile
class FindAllUsersRequest extends GetRequest {
public FindAllUsersRequest(parameters) {
super(parameters);
}
public URL getRequestUrl() {
return URL.create("http://www.jbrains.ca/users/all");
}
}
class GetRequestFactory {
static GetRequest findAllUsers(parameters) {
return new GetRequest(requestUrl: URL.create("http://www.jbrains.ca/users/all"), parameters);
}
}
Controller.initialize() {
parachute = Parachute.new(lander)
detachment_system = DetachmentSystem.new(parachute)
accelerometer = Accelerometer.new()
lander = Lander.new(accelerometer, Altimeter.new())
accelerometer.add_observer(detachment_system)
}
Parachute {
needs a lander
testOpenParachute() {
parachute = Parachute.new(lander = mock(Lander))
lander.expects().decelerate()
parachute.open()
}
testLanderDecelerates() {
accelerometer = mock(Accelerometer)
lander = Lander.new(accelerometer)
accelerometer.expects().report_acceleration(-50.ms2)
lander.decelerate()
}
testAccelerometerCanReportRapidAcceleration() {
accelerometer = Accelerometer.new()
accelerometer.add_observer(observer = mock(AccelerationObserver))
observer.expects().handle_acceleration_report(-50.ms2)
accelerometer.report_acceleration(-50.ms2)
}
AccelerationObserverTest {
testAccelerationObserverCanHandleRapidAcceleration() {
observer = create_acceleration_observer() // subclass responsibility
this_block {
observer.handle_acceleration_report(-50.ms2)
}.should execute_without_incident
}
}
DetachmentSystemTest extends AccelerationObserverTest {
// I inherit testAccelerationObserverCanHandleRapidAcceleration()
create_acceleration_observer() {
DetachmentSystem.new(parachute = mock(Parachute))
parachute.expects().detach()
}
}
DetachmentSystemTest {
testRespondsToRapidAcceleration() {
detachment_system = DetachmentSystem.new(parachute = mock(Parachute))
parachute.expects().detach()
this_block {
detachment_system.handle_acceleration_report(-50.ms2)
}.should execute_without_incident
}
}
ParachuteTest {
testDetachingWhileLanded() {
parachute = Parachute.new(lander = mock(Lander))
lander.stubs().has_landed().to_return(true)
this_block {
parachute.detach()
}.should execute_without_incident
}
testDetachingWhileNotLanded() {