in src/metrics/wmc.rs [292:357]
fn java_nested_inner_classes() {
check_metrics::<JavaParser>(
"public class TopLevelClass { // wmc = 2
private int a;
class InnerClassBefore { // wmc = 1
private boolean b = (a % 2 == 0) ? true : false;
public boolean getB() { // +1
return b;
}
}
public TopLevelClass(int n) { // +1
if (a != n) { // +1
a = n;
}
}
class InnerClassAfter { // wmc = 2
private int c = a;
public int getC() { // +1
return c;
}
public void setC(int n) { // +1
c = n;
}
class InnerClass1 { // wmc = 1
private int p1;
class InnerClass2 { // wmc = 1
private int p2;
public int getP2() { // +1
return p2;
}
class InnerClass3 { // wmc = 2
private int p3;
public int getP3() { // +1
return p3;
}
public void setP3(int n) { // +1
p3 = n;
}
}
}
public void setP1(int n) { // +1
p1 = n;
}
}
}
}",
"foo.java",
|metric| {
// 6 classes (2 + 1 + 2 + 1 + 1 + 2)
insta::assert_json_snapshot!(
metric.wmc,
@r###"
{
"classes": 9.0,
"interfaces": 0.0,
"total": 9.0
}"###
);
},
);
}