Passed
Push — develop ( a05353...e2fd1b )
by Endre
04:09
created

Container   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 23
dl 0
loc 28
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A setupDefaults 0 13 1
1
import ListenerAdapter from '../Observer/ListenerAdapter';
2
import Observer from '../Observer/Observer';
3
import ThemesManager from './ThemesManager';
4
import ThemesRegistry, {Theme} from './ThemesRegistry';
5
6
class Container {
7
  registry: ThemesRegistry;
8
  currentThemeAdapter: ListenerAdapter<Theme>;
9
  currentTheme: Observer<Theme>;
10
  manager: ThemesManager;
11
12
  constructor() {
13 2
    this.registry = new ThemesRegistry();
14 2
    this.currentThemeAdapter = new ListenerAdapter<Theme>();
15 2
    this.currentTheme = new Observer<Theme>(this.registry.getTheme('unknown'), this.currentThemeAdapter);
16 2
    this.manager = new ThemesManager(this.currentTheme, this.registry);
17
18 2
    this.setupDefaults();
19
  }
20
21
  protected setupDefaults(): void {
22 2
    this.registry.registerTheme({
23
      isBuildIn: true,
24
      name: 'Google',
25
      url: 'Theme/Google'
26
    });
27 2
    this.registry.registerTheme({
28
      isBuildIn: true,
29
      name: 'Codefrog',
30
      url: 'Theme/Codefrog'
31
    });
32 2
    this.manager.changeTheme('Google');
33
  }
34
}
35
36
export default new Container();