Skip to content

Commit df416b6

Browse files
committed
Added the wrapper for static methods of java.util.List
1 parent d4f95c1 commit df416b6

File tree

3 files changed

+82
-0
lines changed

3 files changed

+82
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package org.utbot.engine.overrides.collections;
2+
3+
import org.utbot.api.annotation.UtClassMock;
4+
5+
import java.util.Collection;
6+
7+
@UtClassMock(target = java.util.List.class, internalUsage = true)
8+
public interface List<E> extends java.util.List<E> {
9+
static <E> java.util.List<E> of() {
10+
return new UtArrayList<>();
11+
}
12+
13+
@SuppressWarnings("unchecked")
14+
static <E> java.util.List<E> of(E e1) {
15+
return new UtArrayList<>((E[]) new Object[]{e1});
16+
}
17+
18+
@SuppressWarnings("unchecked")
19+
static <E> java.util.List<E> of(E e1, E e2) {
20+
return new UtArrayList<>((E[]) new Object[]{e1, e2});
21+
}
22+
23+
@SuppressWarnings("unchecked")
24+
static <E> java.util.List<E> of(E e1, E e2, E e3) {
25+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3});
26+
}
27+
28+
@SuppressWarnings("unchecked")
29+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4) {
30+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4});
31+
}
32+
33+
@SuppressWarnings("unchecked")
34+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5) {
35+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5});
36+
}
37+
38+
@SuppressWarnings("unchecked")
39+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5, E e6) {
40+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5, e6});
41+
}
42+
43+
@SuppressWarnings("unchecked")
44+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7) {
45+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5, e6, e7});
46+
}
47+
48+
@SuppressWarnings("unchecked")
49+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8) {
50+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5, e6, e7, e8});
51+
}
52+
53+
@SuppressWarnings("unchecked")
54+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9) {
55+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5, e6, e7, e8, e9});
56+
}
57+
58+
@SuppressWarnings("unchecked")
59+
static <E> java.util.List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10) {
60+
return new UtArrayList<>((E[]) new Object[]{e1, e2, e3, e4, e5, e6, e7, e8, e9, e10});
61+
}
62+
63+
@SafeVarargs
64+
@SuppressWarnings("varargs")
65+
static <E> java.util.List<E> of(E... elements) {
66+
return new UtArrayList<>(elements);
67+
}
68+
69+
static <E> java.util.List<E> copyOf(Collection<? extends E> collection) {
70+
return new UtArrayList<>(collection);
71+
}
72+
}

utbot-framework/src/main/java/org/utbot/engine/overrides/collections/UtArrayList.java

+8
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ public UtArrayList(Collection<? extends E> c) {
6363
addAll(c);
6464
}
6565

66+
public UtArrayList(E[] data) {
67+
visit(this);
68+
int length = data.length;
69+
elementData = new RangeModifiableUnlimitedArray<>();
70+
elementData.setRange(0, data, 0, length);
71+
elementData.end = length;
72+
}
73+
6674
/**
6775
* Precondition check is called only once by object,
6876
* if it was passed as parameter to method under test.

utbot-framework/src/main/kotlin/org/utbot/framework/plugin/api/SootUtils.kt

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.utbot.engine.overrides.collections.UtHashSet
2626
import org.utbot.engine.overrides.collections.UtLinkedList
2727
import org.utbot.engine.overrides.UtOverrideMock
2828
import org.utbot.engine.overrides.collections.Collection
29+
import org.utbot.engine.overrides.collections.List
2930
import org.utbot.engine.overrides.collections.UtGenericStorage
3031
import org.utbot.engine.overrides.collections.UtOptional
3132
import org.utbot.engine.overrides.collections.UtOptionalDouble
@@ -133,6 +134,7 @@ private val classesToLoad = arrayOf(
133134
UtStringBuffer::class,
134135
Stream::class,
135136
Collection::class,
137+
List::class,
136138
UtStream::class,
137139
UtStream.UtStreamIterator::class
138140
)

0 commit comments

Comments
 (0)