/**
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */ import { convertToParamMap , ParamMap , Params } from '@angular/router' ; import { ReplaySubject } from 'rxjs' ; /**
 * An ActivateRoute test double with `paramMap` and `fragment` observables.
 * Use the `setParamMap()` method to add the next `paramMap` value, and
 * `setFragment` to change the URL `fragment`.
 */ export class ActivatedRouteStub { private paramMap$ = new ReplaySubject < ParamMap > ( ) ; private fragment$ = new ReplaySubject < string | undefined > ( ) ; /** The mock paramMap observable field. */ readonly paramMap = this . paramMap$ . asObservable ( ) ; /** The mock fragment observable field. */ readonly fragment = this . fragment$ . asObservable ( ) ; constructor ( initialParams ? , initialFragment ? ) { this . setParamMap ( initialParams ) ; this . setFragment ( initialFragment ) ; } /** Set the paramMap observables's next value */ setParamMap ( params ? ) { this . paramMap$ . next ( convertToParamMap ( params || { } ) ) ; } /** Set the fragment observables's next value */ setFragment ( fragment ? ) { this . fragment$ . next ( fragment ) ; } }