// Path: src/test/java/org/smallibs/suitcase/match/models/T.java
// public class T {
//     public final int v1;
//     private final int v2;
//     private final int v3 = 3;
// 
//     public T(int v1, int v2) {
//         this.v1 = v1;
//         this.v2 = v2;
//     }
// 
//     public int getV2() {
//         return v2;
//     }
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/core/Cases.java
// static <T> Case.WithoutCapture<T, T> Any() {
//     return new Case0<T, T>(Optional::of).$();
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/core/Cases.java
// static <T> Var.WithoutInnerCapture<T, T> Var() {
//     return Var(Any());
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/lang/Beans.java
// static <T, R, C> Case.WithoutCapture<T, C> Att(String nameCase, Case.WithoutCapture<R, C> valueCase) {
//     return Att(Cases.Constant(nameCase), valueCase);
// }


import junit.framework.TestCase;
import org.junit.Test;
import org.smallibs.suitcase.match.models.T;
import static org.smallibs.suitcase.cases.core.Cases.Any;
import static org.smallibs.suitcase.cases.core.Cases.Var;
import static org.smallibs.suitcase.cases.lang.Beans.Att;
package org.smallibs.suitcase.match;



public class BeanMatcherTest {

    @Test
    public void shouldFindAttributeByName() throws Exception {
        final T t = new T(1, 2);

        Matcher<T, Boolean> attribute = Matcher.create();

// Path: src/test/java/org/smallibs/suitcase/match/models/T.java
// public class T {
//     public final int v1;
//     private final int v2;
//     private final int v3 = 3;
// 
//     public T(int v1, int v2) {
//         this.v1 = v1;
//         this.v2 = v2;
//     }
// 
//     public int getV2() {
//         return v2;
//     }
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/core/Cases.java
// static <T> Case.WithoutCapture<T, T> Any() {
//     return new Case0<T, T>(Optional::of).$();
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/core/Cases.java
// static <T> Var.WithoutInnerCapture<T, T> Var() {
//     return Var(Any());
// }
// 
// Path: src/main/java/org/smallibs/suitcase/cases/lang/Beans.java
// static <T, R, C> Case.WithoutCapture<T, C> Att(String nameCase, Case.WithoutCapture<R, C> valueCase) {
//     return Att(Cases.Constant(nameCase), valueCase);
// }


// Path: src/test/java/org/smallibs/suitcase/match/BeanMatcherTest.java
import junit.framework.TestCase;
import org.junit.Test;
import org.smallibs.suitcase.match.models.T;
import static org.smallibs.suitcase.cases.core.Cases.Any;
import static org.smallibs.suitcase.cases.core.Cases.Var;
import static org.smallibs.suitcase.cases.lang.Beans.Att;

package org.smallibs.suitcase.match;



public class BeanMatcherTest {

    @Test
    public void shouldFindAttributeByName() throws Exception {
        final T t = new T(1, 2);

        Matcher<T, Boolean> attribute = Matcher.create();

        attribute.caseOf(Att("v1", Any())).then(true);