InInterface.java revision 3014:a3dd196e5341
1198090Srdivacky/*
2198090Srdivacky * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
3198090Srdivacky * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4198090Srdivacky *
5198090Srdivacky * This code is free software; you can redistribute it and/or modify it
6198090Srdivacky * under the terms of the GNU General Public License version 2 only, as
7198090Srdivacky * published by the Free Software Foundation.
8198090Srdivacky *
9198090Srdivacky * This code is distributed in the hope that it will be useful, but WITHOUT
10198090Srdivacky * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11198090Srdivacky * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12198090Srdivacky * version 2 for more details (a copy is included in the LICENSE file that
13198090Srdivacky * accompanied this code).
14198090Srdivacky *
15198090Srdivacky * You should have received a copy of the GNU General Public License version
16198090Srdivacky * 2 along with this work; if not, write to the Free Software Foundation,
17198090Srdivacky * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18198090Srdivacky *
19198090Srdivacky * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20198090Srdivacky * or visit www.oracle.com if you need additional information or have any
21198090Srdivacky * questions.
22198090Srdivacky */
23198090Srdivacky
24198090Srdivacky/**
25198090Srdivacky * @test
26198090Srdivacky * @bug 8003639
27198090Srdivacky * @summary convert lambda testng tests to jtreg and add them
28198090Srdivacky * @run testng InInterface
29198090Srdivacky */
30198090Srdivacky
31198090Srdivackyimport static org.testng.Assert.assertEquals;
32198090Srdivackyimport org.testng.annotations.Test;
33198090Srdivacky
34198090Srdivackyinterface LTII {
35198090Srdivacky
36198090Srdivacky    interface ILsp1 {
37198090Srdivacky        String m();
38198090Srdivacky    }
39198090Srdivacky
40198090Srdivacky    interface ILsp2 {
41198090Srdivacky        String m(String x);
42198090Srdivacky    }
43198090Srdivacky
44198090Srdivacky    default ILsp1 t1() {
45198090Srdivacky        return () -> { return "yo"; };
46198090Srdivacky    }
47198090Srdivacky
48198090Srdivacky    default ILsp2 t2() {
49198090Srdivacky        return (x) -> { return "snur" + x; };
50198090Srdivacky    }
51198090Srdivacky
52198090Srdivacky}
53198090Srdivacky
54198090Srdivacky@Test
55198090Srdivackypublic class InInterface implements LTII {
56198090Srdivacky
57198090Srdivacky    public void testLambdaInDefaultMethod() {
58198090Srdivacky        assertEquals(t1().m(), "yo");
59198090Srdivacky        assertEquals(t2().m("p"), "snurp");
60198090Srdivacky    }
61198090Srdivacky
62198090Srdivacky}
63198090Srdivacky