test-file-handler.ts
1.03 KB
import { Observable, Subscriber } from 'rxjs';
import { FileHandler } from '../../src/api/file-handler';
export class TestFileHandler implements FileHandler {
protected static errorRate:number = 0;
static setErrorRate(rate:number) {
TestFileHandler.errorRate = rate;
}
download(source:string, target:string) : Observable<number> {
return Observable.create((subscriber:Subscriber<number>) => {
let random = Math.random();
let error:boolean = random < TestFileHandler.errorRate;
let counter = 1;
if (error) {
subscriber.error("random error triggered");
return;
}
let interval = setInterval(() => {
if (counter < 4) {
subscriber.next(counter * 25);
} else {
subscriber.complete();
clearInterval(interval);
}
++counter;
}, 10);
});
}
}