err := testEnvironment.StartAgent() Expect(err).ToNot(HaveOccurred()) agentClient, err = testEnvironment.StartAgentTunnel("mbus-user", "mbus-pass", 6868) Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { err := testEnvironment.StopAgentTunnel() Expect(err).NotTo(HaveOccurred()) err = testEnvironment.StopAgent() Expect(err).NotTo(HaveOccurred()) err = testEnvironment.DetachDevice("/dev/sdh") Expect(err).ToNot(HaveOccurred()) }) Context("on ubuntu", func() { It("deletes ARP entries from the cache", func() { err := agentClient.DeleteARPEntries([]string{testIP}) Expect(err).NotTo(HaveOccurred()) Eventually(func() string { ARPCache, _ := parseARPCacheIntoMap() return ARPCache[testIP] }).Should(Equal(emptyMacAddress)) }) }) })
Describe("DeleteARPEntries", func() { var ( ips []string ) Context("when agent responds with a value", func() { BeforeEach(func() { ips = []string{"10.0.0.1", "10.0.0.2"} fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":"{}"}`, 200, nil) }) It("makes a POST request to the endpoint", func() { err := agentClient.DeleteARPEntries(ips) Expect(err).ToNot(HaveOccurred()) Expect(fakeHTTPClient.PostInputs).To(HaveLen(4)) Expect(fakeHTTPClient.PostInputs[0].Endpoint).To(Equal("http://localhost:6305/agent")) var request AgentRequestMessage err = json.Unmarshal(fakeHTTPClient.PostInputs[0].Payload, &request) Expect(err).ToNot(HaveOccurred()) expectedIps := []interface{}{ips[0], ips[1]} Expect(request).To(Equal(AgentRequestMessage{ Method: "delete_arp_entries", Arguments: []interface{}{map[string]interface{}{"ips": expectedIps}}, ReplyTo: "fake-uuid", }))