1/* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17import {FunctionUtils} from './function_utils'; 18 19describe('FunctionUtils', () => { 20 class A { 21 a = 'a'; 22 foo(): string { 23 return 'a'; 24 } 25 } 26 27 class B { 28 b = 'b'; 29 bar(): string { 30 return 'b'; 31 } 32 } 33 34 it('mixin()', () => { 35 const a = new A(); 36 const b = new B(); 37 38 const mixin = FunctionUtils.mixin(a, b); 39 40 expect(mixin.a).toEqual('a'); 41 expect(mixin.b).toEqual('b'); 42 expect(mixin.foo()).toEqual('a'); 43 expect(mixin.bar()).toEqual('b'); 44 }); 45}); 46