feat(fls): system software settings as Java loads them
readSystemSoftware adds to each node what the topology needs from its system software: a switch's SSID and learning time, a host's wireless SSID, a router's RIP switch, the manual routes and the firewall of a router or home router. All 23 corpus files match Java. - A router's firewall is one object its constructor hangs in two places; the corpus writes it under the web server's "konfig" plug-in. The places are merged. - The decoder keeps entries a constructor made in a map, reached by get(key) (installed applications), like the elements of a list. - The Java oracle loads every file twice and writes values that differ as null: what FILIUS rolls (MACs, a switch's SSID) without text search. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -186,6 +186,33 @@ describe('XMLDecoder rules', () => {
|
||||
expect(listItems(list)).toHaveLength(3);
|
||||
});
|
||||
|
||||
it("keeps the entries a constructor made in a map, reached by get(key), and shares them", () => {
|
||||
// A router's operating system installs its web server in the constructor;
|
||||
// the file reaches it through the map and changes it.
|
||||
const [system] = decodeJavaBeans(
|
||||
doc(`<object class="filius.software.system.VermittlungsrechnerBetriebssystem">
|
||||
<void id="HashMap0" property="installierteAnwendungen">
|
||||
<void id="WebServer0" method="get"><string>filius.software.www.WebServer</string>
|
||||
<void property="aktiv"><boolean>true</boolean></void>
|
||||
</void>
|
||||
<void method="get"><string>filius.software.www.WebServer</string>
|
||||
<void property="port"><int>8080</int></void>
|
||||
</void>
|
||||
<void method="put"><string>extra</string><int>1</int></void>
|
||||
</void>
|
||||
</object>`),
|
||||
);
|
||||
|
||||
const entries = mapEntries(object(system).properties.get('installierteAnwendungen'));
|
||||
expect(entries.map(([key]) => key)).toEqual(['filius.software.www.WebServer', 'extra']);
|
||||
const server = object(entries[0]![1]);
|
||||
expect(server).toMatchObject({ className: 'WebServer', id: 'WebServer0', fromGetter: true });
|
||||
expect([...server.properties]).toEqual([
|
||||
['aktiv', true],
|
||||
['port', 8080],
|
||||
]);
|
||||
});
|
||||
|
||||
it('replays add at an index and set by index in order', () => {
|
||||
const [list] = decodeJavaBeans(
|
||||
doc(`<object class="java.util.ArrayList">
|
||||
|
||||
Reference in New Issue
Block a user