-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinaryObjectsToPNGsNodeParametersTest.java
More file actions
105 lines (97 loc) · 4.83 KB
/
BinaryObjectsToPNGsNodeParametersTest.java
File metadata and controls
105 lines (97 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
* ------------------------------------------------------------------------
*
* Copyright by KNIME AG, Zurich, Switzerland
* Website: http://www.knime.com; Email: contact@knime.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 3, as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses>.
*
* Additional permission under GNU GPL version 3 section 7:
*
* KNIME interoperates with ECLIPSE solely via ECLIPSE's plug-in APIs.
* Hence, KNIME and ECLIPSE are both independent programs and are not
* derived from each other. Should, however, the interpretation of the
* GNU GPL Version 3 ("License") under any applicable laws result in
* KNIME and ECLIPSE being a combined program, KNIME AG herewith grants
* you the additional permission to use and propagate KNIME together with
* ECLIPSE with only the license terms in place for ECLIPSE applying to
* ECLIPSE and the GNU GPL Version 3 applying for KNIME, provided the
* license terms of ECLIPSE themselves allow for the respective use and
* propagation of ECLIPSE together with KNIME.
*
* Additional permission relating to nodes for KNIME that extend the Node
* Extension (and in particular that are based on subclasses of NodeModel,
* NodeDialog, and NodeView) and that only interoperate with KNIME through
* standard APIs ("Nodes"):
* Nodes are deemed to be separate and independent programs and to not be
* covered works. Notwithstanding anything to the contrary in the
* License, the License does not apply to Nodes, you are not required to
* license Nodes under the License, and you are granted a license to
* prepare and propagate Nodes, in each case even if such Nodes are
* propagated with or for interoperation with KNIME. The owner of a Node
* may freely choose the license terms applicable to such Node, including
* when such Node is propagated with or for interoperation with KNIME.
* ------------------------------------------------------------------------
*/
package org.knime.base.filehandling.binaryobjectstopngs;
import java.io.FileInputStream;
import java.io.IOException;
import org.knime.core.data.DataTableSpec;
import org.knime.core.data.DataType;
import org.knime.core.data.blob.BinaryObjectDataCell;
import org.knime.core.node.InvalidSettingsException;
import org.knime.core.node.NodeSettings;
import org.knime.core.node.port.PortObjectSpec;
import org.knime.core.webui.node.dialog.SettingsType;
import org.knime.core.webui.node.dialog.defaultdialog.NodeParametersUtil;
import org.knime.testing.node.dialog.DefaultNodeSettingsSnapshotTest;
import org.knime.testing.node.dialog.SnapshotTestConfiguration;
/**
* Snapshot test for {@link BinaryObjectsToPNGsNodeParameters}.
*
* @author Tim Crundall, TNG Technology Consulting GmbH
*/
@SuppressWarnings("restriction")
final class BinaryObjectsToPNGsNodeParametersTest extends DefaultNodeSettingsSnapshotTest {
BinaryObjectsToPNGsNodeParametersTest() {
super(getConfig());
}
private static SnapshotTestConfiguration getConfig() {
return SnapshotTestConfiguration.builder() //
.withInputPortObjectSpecs(createInputPortSpecs()) //
.testJsonFormsForModel(BinaryObjectsToPNGsNodeParameters.class) //
.testJsonFormsWithInstance(SettingsType.MODEL, () -> readSettings()) //
.testNodeSettingsStructure(() -> readSettings()) //
.build();
}
private static BinaryObjectsToPNGsNodeParameters readSettings() {
try {
var path = getSnapshotPath(BinaryObjectsToPNGsNodeParameters.class).getParent().resolve("node_settings")
.resolve("BinaryObjectsToPNGsNodeParameters.xml");
try (var fis = new FileInputStream(path.toFile())) {
var nodeSettings = NodeSettings.loadFromXML(fis);
return NodeParametersUtil.loadSettings(nodeSettings.getNodeSettings(SettingsType.MODEL.getConfigKey()),
BinaryObjectsToPNGsNodeParameters.class);
}
} catch (IOException | InvalidSettingsException e) {
throw new IllegalStateException(e);
}
}
private static PortObjectSpec[] createInputPortSpecs() {
return new PortObjectSpec[]{createDefaultTestTableSpec()};
}
private static DataTableSpec createDefaultTestTableSpec() {
return new DataTableSpec(new String[]{"foo"},
new DataType[]{DataType.getType(BinaryObjectDataCell.class), });
}
}