mockRouter = null mockGlobals = null toMock = ["is_valid_ip", "get_router", "get_switch"] TEST_SETUP function() globals.mockGlobals = Mock.build({}) toMock.forEach function(key) // forEach is from an extension I added to list. Published separately. globals[key] = mockGlobals.define(key, 1) end function globals.mockRouter = Mock.build({}) mockRouter.define("firewall_rules", 0) mockRouter.define("local_ip", 0) mockRouter.define("devices_lan_ip", 0) end function TEST_TEARDOWN function() assertTrue mockRouter.getResult assertTrue mockGlobals.getResult toMock.forEach(@globals.remove, globals) end function TEST "NetDev initialises correctly and returns valid data", function() fwRules = ["ALLOW 1234 Any 10.0.0.1", "DENY 4321 Any Any"] devices = ["192.168.1.1", "10.0.0.1", "172.16.0.1"] firstArg = "192.168.1.1" mockGlobals.expectCall("is_valid_ip").withParams(firstArg).andReturn(true) mockGlobals.expectCall("get_router").withParams(firstArg).andReturn(mockRouter) mockRouter.expectCall("firewall_rules").andReturn(fwRules) mockRouter.expectCall("local_ip").andReturn(firstArg) mockRouter.expectCall("devices_lan_ip").andReturn(devices) mockGlobals.expectCall("is_valid_ip").withParams(devices[1]).andReturn(true) mockGlobals.expectCall("get_router").withParams(devices[1]).andReturn(null) mockGlobals.expectCall("get_switch").withParams(devices[1]).andReturn(mockRouter) mockRouter.expectCall("firewall_rules").andReturn([]) mockRouter.expectCall("local_ip").andReturn(devices[1]) mockRouter.expectCall("devices_lan_ip").andReturn(devices) mockGlobals.expectCall("is_valid_ip").withParams(devices[2]).andReturn(true) mockGlobals.expectCall("get_router").withParams(devices[2]).andReturn(null) mockGlobals.expectCall("get_switch").withParams(devices[2]).andReturn(null) netDev = NetDev.GetDevInfo(firstArg) expectIsa netDev, NetDev.Router expectEqual netDev.dev, mockRouter expectEqual netDev.localIp, devices[0] expectEqual netDev.connections.len, devices.len - 1 assertEqual netDev.fwRules.len, fwRules.len expectIsa netDev.fwRules[0], FwRule.ALLOW expectEqual netDev.fwRules[0].port, 1234 expectIsa netDev.fwRules[0].src, FwRule.Any expectEqual netDev.fwRules[0].dst, "10.0.0.1" expectIsa netDev.fwRules[1], FwRule.DENY expectEqual netDev.fwRules[1].port, 4321 expectIsa netDev.fwRules[1].src, FwRule.Any expectIsa netDev.fwRules[1].dst, FwRule.Any switch = netDev.connections[0] expectIsa switch, NetDev.Switch expectEqual switch.dev, mockRouter expectEqual switch.fwRules, [] expectEqual switch.localIp, "10.0.0.1" assertEqual switch.connections.len, devices.len - 1 host = netDev.connections[1] expectIsa host, LANDevice expectEqual host.localIp, "172.16.0.1" end function RUN_ALL_TESTS // CRUCIAL!