Skip to content

Commit da6c36c

Browse files
committed
Unit test cleanup
Signed-off-by: Gary O'Neall <gary@sourceauditor.com>
1 parent 6744276 commit da6c36c

101 files changed

Lines changed: 215 additions & 18457 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/java/org/spdx/library/LicenseInfoFactory.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.spdx.library.model.v2.license.LicenseParserException;
3535
import org.spdx.library.model.v2.license.ListedLicenseException;
3636
import org.spdx.library.model.v2.license.SpdxListedLicense;
37+
import org.spdx.library.model.v3.core.SpdxDocument;
3738
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingListedLicense;
3839
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingListedLicenseException;
3940
import org.spdx.library.model.v3.simplelicensing.SimpleLicensingAnyLicenseInfo;
@@ -127,27 +128,29 @@ public static AnyLicenseInfo parseSPDXLicenseStringV2(String licenseString, @Nul
127128
* @param licenseString String conforming to the syntax
128129
* @param store Store containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If
129130
* none exist for an ID, they will be added. If null, the default model store will be used.
130-
* @param documentUri Document URI for the document containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If
131-
* none exist for an ID, they will be added. If null, the default model document URI will be used.
131+
* @param customLicensePrefix Prefix to use for any custom licenses or addition IDs found in the string. If the resultant object URI does not exist
132+
* for an ID, they will be added. If null, the default model document URI + "#" will be used.
132133
* @param copyManager if non-null, allows for copying of any properties set which use other model stores or document URI's
134+
* @param spdxDocument Document containing the namespace map for any prefixes used in external addition or licenses
133135
* @return an SPDXLicenseInfo created from the string
134136
* @throws InvalidLicenseStringException
135137
* @throws DefaultStoreNotInitialized
136138
*/
137139
public static SimpleLicensingAnyLicenseInfo parseSPDXLicenseString(String licenseString, @Nullable IModelStore store,
138-
@Nullable String documentUri, @Nullable IModelCopyManager copyManager) throws InvalidLicenseStringException, DefaultStoreNotInitialized {
140+
@Nullable String customLicensePrefix, @Nullable IModelCopyManager copyManager,
141+
@Nullable SpdxDocument spdxDocument) throws InvalidLicenseStringException, DefaultStoreNotInitialized {
139142
if (Objects.isNull(store)) {
140143
store = DefaultModelStore.getDefaultModelStore();
141144
}
142-
if (Objects.isNull(documentUri)) {
143-
documentUri = DefaultModelStore.getDefaultDocumentUri();
145+
if (Objects.isNull(customLicensePrefix)) {
146+
customLicensePrefix = DefaultModelStore.getDefaultDocumentUri() + "#";
144147
}
145148
if (Objects.isNull(copyManager)) {
146149
copyManager = DefaultModelStore.getDefaultCopyManager();
147150
}
148151
try {
149-
return LicenseExpressionParser.parseLicenseExpression(licenseString, store, documentUri,
150-
copyManager);
152+
return LicenseExpressionParser.parseLicenseExpression(licenseString, store, customLicensePrefix,
153+
copyManager, spdxDocument);
151154
} catch (LicenseParserException e) {
152155
throw new InvalidLicenseStringException(e.getMessage(),e);
153156
} catch (InvalidSPDXAnalysisException e) {
@@ -173,7 +176,7 @@ public static SimpleLicensingAnyLicenseInfo parseSPDXLicenseString(String licens
173176
* @throws DefaultStoreNotInitialized
174177
*/
175178
public static SimpleLicensingAnyLicenseInfo parseSPDXLicenseString(String licenseString) throws InvalidLicenseStringException, DefaultStoreNotInitialized {
176-
return parseSPDXLicenseString(licenseString, null, null, null);
179+
return parseSPDXLicenseString(licenseString, null, null, null, null);
177180
}
178181

179182
/**
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/**
2+
* Copyright (c) 2019 Source Auditor Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
package org.spdx.library;
19+
import java.util.ArrayList;
20+
import java.util.Arrays;
21+
import java.util.List;
22+
23+
import org.spdx.core.DefaultModelStore;
24+
import org.spdx.core.DefaultStoreNotInitialized;
25+
import org.spdx.core.InvalidSPDXAnalysisException;
26+
import org.spdx.library.model.v2.SpdxConstantsCompatV2;
27+
import org.spdx.library.model.v2.license.InvalidLicenseStringException;
28+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingConjunctiveLicenseSet;
29+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingCustomLicense;
30+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingDisjunctiveLicenseSet;
31+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingListedLicense;
32+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingNoAssertionLicense;
33+
import org.spdx.library.model.v3.expandedlicensing.ExpandedLicensingNoneLicense;
34+
import org.spdx.library.model.v3.simplelicensing.SimpleLicensingAnyLicenseInfo;
35+
import org.spdx.storage.IModelStore;
36+
import org.spdx.storage.IModelStore.IdType;
37+
import org.spdx.storage.simple.InMemSpdxStore;
38+
39+
import junit.framework.TestCase;
40+
41+
/**
42+
* @author gary
43+
*
44+
*/
45+
public class LicenseInfoFactoryTest extends TestCase {
46+
47+
static final String[] NONSTD_IDS = new String[] {SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"1",
48+
SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"2", SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"3",
49+
SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"4"};
50+
static final String[] NONSTD_TEXTS = new String[] {"text1", "text2", "text3", "text4"};
51+
static final String[] STD_IDS = new String[] {"AFL-3.0", "CECILL-B", "EUPL-1.0"};
52+
static final String[] STD_TEXTS = new String[] {"Academic Free License (", "CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B",
53+
"European Union Public Licence"};
54+
55+
ExpandedLicensingCustomLicense[] NON_STD_LICENSES;
56+
ExpandedLicensingListedLicense[] STANDARD_LICENSES;
57+
ExpandedLicensingDisjunctiveLicenseSet[] DISJUNCTIVE_LICENSES;
58+
ExpandedLicensingConjunctiveLicenseSet[] CONJUNCTIVE_LICENSES;
59+
60+
ExpandedLicensingConjunctiveLicenseSet COMPLEX_LICENSE;
61+
62+
ModelCopyManager copyManager;
63+
IModelStore modelStore;
64+
static final String TEST_DOCUMENT_URI = "https://test.doc.uri";
65+
66+
/* (non-Javadoc)
67+
* @see junit.framework.TestCase#setUp()
68+
*/
69+
protected void setUp() throws Exception {
70+
super.setUp();
71+
SpdxModelFactory.init();
72+
modelStore = new InMemSpdxStore();
73+
copyManager = new ModelCopyManager();
74+
DefaultModelStore.initialize(new InMemSpdxStore(), TEST_DOCUMENT_URI, copyManager);
75+
NON_STD_LICENSES = new ExpandedLicensingCustomLicense[NONSTD_IDS.length];
76+
for (int i = 0; i < NONSTD_IDS.length; i++) {
77+
NON_STD_LICENSES[i] = new ExpandedLicensingCustomLicense(modelStore,
78+
TEST_DOCUMENT_URI + "#" + NONSTD_IDS[i], copyManager, true);
79+
NON_STD_LICENSES[i].setSimpleLicensingLicenseText(NONSTD_TEXTS[i]);
80+
}
81+
82+
STANDARD_LICENSES = new ExpandedLicensingListedLicense[STD_IDS.length];
83+
for (int i = 0; i < STD_IDS.length; i++) {
84+
STANDARD_LICENSES[i] = new ExpandedLicensingListedLicense(modelStore,
85+
SpdxConstantsCompatV2.LISTED_LICENSE_NAMESPACE_PREFIX + STD_IDS[i], copyManager, true);
86+
STANDARD_LICENSES[i].setName("Name "+String.valueOf(i));
87+
STANDARD_LICENSES[i].setSimpleLicensingLicenseText(STD_TEXTS[i]);
88+
STANDARD_LICENSES[i].getExpandedLicensingSeeAlsos().add("URL "+String.valueOf(i));
89+
STANDARD_LICENSES[i].setComment("Notes "+String.valueOf(i));
90+
STANDARD_LICENSES[i].setExpandedLicensingStandardLicenseHeader("LicHeader "+String.valueOf(i));
91+
STANDARD_LICENSES[i].setExpandedLicensingStandardLicenseTemplate("Template "+String.valueOf(i));
92+
}
93+
94+
DISJUNCTIVE_LICENSES = new ExpandedLicensingDisjunctiveLicenseSet[3];
95+
CONJUNCTIVE_LICENSES = new ExpandedLicensingConjunctiveLicenseSet[2];
96+
97+
DISJUNCTIVE_LICENSES[0] = new ExpandedLicensingDisjunctiveLicenseSet(modelStore,
98+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
99+
DISJUNCTIVE_LICENSES[0].getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
100+
NON_STD_LICENSES[0], NON_STD_LICENSES[1], STANDARD_LICENSES[1]
101+
})));
102+
CONJUNCTIVE_LICENSES[0] = new ExpandedLicensingConjunctiveLicenseSet(modelStore,
103+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
104+
CONJUNCTIVE_LICENSES[0].getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
105+
STANDARD_LICENSES[0], NON_STD_LICENSES[0], STANDARD_LICENSES[1]
106+
})));
107+
CONJUNCTIVE_LICENSES[1] = new ExpandedLicensingConjunctiveLicenseSet(modelStore,
108+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
109+
CONJUNCTIVE_LICENSES[1].getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
110+
DISJUNCTIVE_LICENSES[0], NON_STD_LICENSES[2]
111+
})));
112+
DISJUNCTIVE_LICENSES[1] = new ExpandedLicensingDisjunctiveLicenseSet(modelStore,
113+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
114+
DISJUNCTIVE_LICENSES[1].getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
115+
CONJUNCTIVE_LICENSES[1], NON_STD_LICENSES[0], STANDARD_LICENSES[0]
116+
})));
117+
DISJUNCTIVE_LICENSES[2] = new ExpandedLicensingDisjunctiveLicenseSet(modelStore,
118+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
119+
DISJUNCTIVE_LICENSES[2].getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
120+
DISJUNCTIVE_LICENSES[1], CONJUNCTIVE_LICENSES[0], STANDARD_LICENSES[2]
121+
})));
122+
COMPLEX_LICENSE = new ExpandedLicensingConjunctiveLicenseSet(modelStore,
123+
modelStore.getNextId(IdType.Anonymous), copyManager, true);
124+
COMPLEX_LICENSE.getExpandedLicensingMembers().addAll(new ArrayList<SimpleLicensingAnyLicenseInfo>(Arrays.asList(new SimpleLicensingAnyLicenseInfo[] {
125+
DISJUNCTIVE_LICENSES[2], NON_STD_LICENSES[2], CONJUNCTIVE_LICENSES[1]
126+
})));
127+
}
128+
129+
/* (non-Javadoc)
130+
* @see junit.framework.TestCase#tearDown()
131+
*/
132+
protected void tearDown() throws Exception {
133+
super.tearDown();
134+
DefaultModelStore.initialize(new InMemSpdxStore(), "https://default/prefix", new ModelCopyManager());
135+
}
136+
137+
public void testParseSPDXLicenseString() throws InvalidLicenseStringException, DefaultStoreNotInitialized {
138+
String parseString = COMPLEX_LICENSE.toString();
139+
SimpleLicensingAnyLicenseInfo li = LicenseInfoFactory.parseSPDXLicenseString(parseString);
140+
if (!li.equals(COMPLEX_LICENSE)) {
141+
fail("Parsed license does not equal");
142+
}
143+
}
144+
145+
146+
public void testSpecialLicenses() throws InvalidLicenseStringException, InvalidSPDXAnalysisException {
147+
// NONE
148+
SimpleLicensingAnyLicenseInfo none = LicenseInfoFactory.parseSPDXLicenseString(LicenseInfoFactory.NONE_LICENSE_NAME);
149+
SimpleLicensingAnyLicenseInfo comp = new ExpandedLicensingNoneLicense();
150+
assertEquals(none, comp);
151+
List<String> verify = comp.verify();
152+
assertEquals(0, verify.size());
153+
// NOASSERTION_NAME
154+
SimpleLicensingAnyLicenseInfo noAssertion = LicenseInfoFactory.parseSPDXLicenseString(LicenseInfoFactory.NOASSERTION_LICENSE_NAME);
155+
comp = new ExpandedLicensingNoAssertionLicense();
156+
assertEquals(noAssertion, comp);
157+
verify = comp.verify();
158+
assertEquals(0, verify.size());
159+
}
160+
161+
162+
public void testDifferentLicenseOrder() throws InvalidSPDXAnalysisException {
163+
SimpleLicensingAnyLicenseInfo order1 = LicenseInfoFactory.parseSPDXLicenseString("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-3 AND LicenseRef-12 AND LicenseRef-4 AND LicenseRef-13 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND LicenseRef-16 AND BSD-3-Clause-Clear)");
164+
SimpleLicensingAnyLicenseInfo order2 = LicenseInfoFactory.parseSPDXLicenseString("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-12 AND LicenseRef-3 AND LicenseRef-13 AND LicenseRef-4 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND BSD-3-Clause-Clear AND LicenseRef-16)");
165+
assertTrue(order1.equals(order2));
166+
assertTrue(order1.equivalent(order2));
167+
}
168+
169+
public void testParseSPDXLicenseStringMixedCase() throws InvalidSPDXAnalysisException {
170+
String parseString = COMPLEX_LICENSE.toString();
171+
String lowerCaseCecil = parseString.replace("CECILL-B", "CECILL-B".toLowerCase());
172+
SimpleLicensingAnyLicenseInfo result = LicenseInfoFactory.parseSPDXLicenseString(lowerCaseCecil);
173+
assertEquals(COMPLEX_LICENSE, result);
174+
}
175+
}

src/test/java/org/spdx/library/model/compat/v2/license/LicenseInfoFactoryTest.java renamed to src/test/java/org/spdx/library/LicenseInfoFactoryTestV2.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,34 @@
1515
* See the License for the specific language governing permissions and
1616
* limitations under the License.
1717
*/
18-
package org.spdx.library.model.compat.v2.license;
18+
package org.spdx.library;
1919
import java.util.ArrayList;
2020
import java.util.Arrays;
2121
import java.util.List;
2222

23-
import org.spdx.library.DefaultModelStore;
24-
import org.spdx.library.InvalidSPDXAnalysisException;
25-
import org.spdx.library.SpdxConstantsCompatV2;
26-
import org.spdx.library.SpdxConstants.SpdxMajorVersion;
27-
import org.spdx.library.model.compat.v2.GenericModelObject;
23+
import org.spdx.core.DefaultModelStore;
24+
import org.spdx.core.DefaultStoreNotInitialized;
25+
import org.spdx.core.InvalidSPDXAnalysisException;
26+
import org.spdx.library.model.v2.GenericModelObject;
27+
import org.spdx.library.model.v2.SpdxConstantsCompatV2;
28+
import org.spdx.library.model.v2.license.AnyLicenseInfo;
29+
import org.spdx.library.model.v2.license.ConjunctiveLicenseSet;
30+
import org.spdx.library.model.v2.license.DisjunctiveLicenseSet;
31+
import org.spdx.library.model.v2.license.ExtractedLicenseInfo;
32+
import org.spdx.library.model.v2.license.InvalidLicenseStringException;
33+
import org.spdx.library.model.v2.license.SpdxListedLicense;
34+
import org.spdx.library.model.v2.license.SpdxNoAssertionLicense;
35+
import org.spdx.library.model.v2.license.SpdxNoneLicense;
36+
import org.spdx.storage.IModelStore;
37+
import org.spdx.storage.simple.InMemSpdxStore;
2838

2939
import junit.framework.TestCase;
3040

3141
/**
3242
* @author gary
3343
*
3444
*/
35-
public class LicenseInfoFactoryTest extends TestCase {
45+
public class LicenseInfoFactoryTestV2 extends TestCase {
3646

3747
static final String[] NONSTD_IDS = new String[] {SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"1",
3848
SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"2", SpdxConstantsCompatV2.NON_STD_LICENSE_ID_PRENUM+"3",
@@ -50,13 +60,19 @@ public class LicenseInfoFactoryTest extends TestCase {
5060
ConjunctiveLicenseSet COMPLEX_LICENSE;
5161

5262
GenericModelObject gmo;
63+
ModelCopyManager copyManager;
64+
IModelStore modelStore;
65+
static final String TEST_DOCUMENT_URI = "https://test.doc.uri";
5366

5467
/* (non-Javadoc)
5568
* @see junit.framework.TestCase#setUp()
5669
*/
5770
protected void setUp() throws Exception {
5871
super.setUp();
59-
DefaultModelStore.reset(SpdxMajorVersion.VERSION_2);
72+
SpdxModelFactory.init();
73+
modelStore = new InMemSpdxStore();
74+
copyManager = new ModelCopyManager();
75+
DefaultModelStore.initialize(new InMemSpdxStore(), "https://docnamespace", copyManager);
6076
gmo = new GenericModelObject();
6177
NON_STD_LICENSES = new ExtractedLicenseInfo[NONSTD_IDS.length];
6278
for (int i = 0; i < NONSTD_IDS.length; i++) {
@@ -99,10 +115,10 @@ protected void setUp() throws Exception {
99115
*/
100116
protected void tearDown() throws Exception {
101117
super.tearDown();
102-
DefaultModelStore.reset(SpdxMajorVersion.VERSION_3);
118+
DefaultModelStore.initialize(new InMemSpdxStore(), "https://default/prefix", new ModelCopyManager());
103119
}
104120

105-
public void testParseSPDXLicenseString() throws InvalidLicenseStringException {
121+
public void testParseSPDXLicenseString() throws InvalidLicenseStringException, DefaultStoreNotInitialized {
106122
String parseString = COMPLEX_LICENSE.toString();
107123
AnyLicenseInfo li = LicenseInfoFactory.parseSPDXLicenseV2String(parseString);
108124
if (!li.equals(COMPLEX_LICENSE)) {
@@ -128,8 +144,8 @@ public void testSpecialLicenses() throws InvalidLicenseStringException, InvalidS
128144

129145

130146
public void testDifferentLicenseOrder() throws InvalidSPDXAnalysisException {
131-
AnyLicenseInfo order1 = LicenseInfoFactory.parseSPDXLicenseV2String("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-3 AND LicenseRef-12 AND LicenseRef-4 AND LicenseRef-13 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND LicenseRef-16 AND BSD-2-Clause-Clear)");
132-
AnyLicenseInfo order2 = LicenseInfoFactory.parseSPDXLicenseV2String("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-12 AND LicenseRef-3 AND LicenseRef-13 AND LicenseRef-4 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND BSD-2-Clause-Clear AND LicenseRef-16)");
147+
AnyLicenseInfo order1 = LicenseInfoFactory.parseSPDXLicenseV2String("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-3 AND LicenseRef-12 AND LicenseRef-4 AND LicenseRef-13 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND LicenseRef-16 AND BSD-3-Clause-Clear)");
148+
AnyLicenseInfo order2 = LicenseInfoFactory.parseSPDXLicenseV2String("(LicenseRef-14 AND LicenseRef-5 AND LicenseRef-6 AND LicenseRef-15 AND LicenseRef-12 AND LicenseRef-3 AND LicenseRef-13 AND LicenseRef-4 AND LicenseRef-10 AND LicenseRef-9 AND LicenseRef-11 AND LicenseRef-7 AND LicenseRef-8 AND LGPL-2.1+ AND LicenseRef-1 AND LicenseRef-2 AND LicenseRef-0 AND GPL-2.0+ AND GPL-2.0 AND LicenseRef-17 AND BSD-3-Clause-Clear AND LicenseRef-16)");
133149
assertTrue(order1.equals(order2));
134150
assertTrue(order1.equivalent(order2));
135151
}

0 commit comments

Comments
 (0)