import { async, inject, TestBed } from '@angular/core/testing';
import { Router, ActivatedRoute } from '@angular/router';
import { RouterTestingModule } from "@angular/router/testing";
import {
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
import { FrameworkLibraryService, WidgetLibraryService } from 'angular2-json-schema-form';

import { MetadataEditorService } from '../shared/metadata-editor.service';
import { ProjectManagerComponent } from './projectmanager.component';
import { ProjectManagerService } from './projectmanager.service';
import { AppConstants } from '../shared/app.constants';
import { WorkspaceService } from '../workspace';

describe('ProjectManager Component', () => {
    var router: Router, activatedRoute: ActivatedRoute;
    var projectManagerService: ProjectManagerService, projectManagerComponent: ProjectManagerComponent;
    var metadataEditorService: MetadataEditorService;
    var workspaceService: WorkspaceService, projectManagerComponent: ProjectManagerComponent;
    var frameworkLibraryService: FrameworkLibraryService;
    var widgetLibraryService: WidgetLibraryService;

    // beforeAll(() => {
    //     TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
    // });

    beforeEach(() => {
        
        projectManagerService = new ProjectManagerService();
        widgetLibraryService = new WidgetLibraryService();
        frameworkLibraryService = new FrameworkLibraryService(widgetLibraryService);
        workspaceService = new WorkspaceService(activatedRoute, router);
        projectManagerComponent = new ProjectManagerComponent
            (
            projectManagerService,
            workspaceService,
            frameworkLibraryService,
            activatedRoute,
            router
            );
    });

    it('ngOnInit', () => {
        projectManagerComponent.ngOnInit();
        expect(projectManagerComponent.options).toBeNull(false);
    });
});