@@ -173,6 +173,19 @@ testConnectNetwork =
173173 where
174174 networkMode (Network mode _) = mode
175175
176+testDisconnectNetwork :: IO ()
177+testDisconnectNetwork =
178+ runDocker $ do
179+ containerId <- fromRight =<< createContainer (defaultCreateOpts (testImageName <> ":latest")) Nothing
180+ res <- disconnectNetwork (fromJust $ toNetworkID "bridge") (defaultDisconnectConfig $ fromContainerID containerId)
181+ lift $ assertBool ("disconnecting network, unexpected status: " ++ show res) $ isRight res
182+ details <- fromRight =<< inspectContainer containerId
183+ _ <- deleteContainer defaultContainerDeleteOpts containerId
184+ let networks = networkMode <$> (networkSettingsNetworks . networkSettings) details
185+ lift $ assertBool "disconnecting network failed" $ null networks
186+ where
187+ networkMode (Network mode _) = mode
188+
176189testLogDriverOptionsJson :: TestTree
177190testLogDriverOptionsJson = testGroup "Testing LogDriverOptions JSON" [test1, test2, test3]
178191 where
@@ -265,6 +278,17 @@ testNetworkingConfigJson = testGroup "Testing NetworkingConfig JSON" [testSample
265278 ]
266279 ]
267280
281+testDisconnectConfigJson :: TestTree
282+testDisconnectConfigJson = testGroup "Testing DisconnectConfig JSON" [testSampleEncode]
283+ where
284+ testSampleEncode =
285+ let config = DisconnectConfig "mycontainer" True
286+ in testCase "Test toJSON" $ assert $ JSON.toJSON config ==
287+ JSON.object
288+ [ "Container" .= ("mycontainer" :: Text)
289+ , "Force" .= True
290+ ]
291+
268292integrationTests :: TestTree
269293integrationTests =
270294 testGroup
@@ -281,6 +305,7 @@ integrationTests =
281305 , testCase "List networks" testListNetworks
282306 , testCase "Inspect a network" testInspectNetwork
283307 , testCase "Connect a container to a network" testConnectNetwork
308+ , testCase "Disconnect a container from a network" testDisconnectNetwork
284309 ]
285310
286311jsonTests :: TestTree
@@ -294,6 +319,7 @@ jsonTests =
294319 , testEntrypointJson
295320 , testEnvVarJson
296321 , testNetworkingConfigJson
322+ , testDisconnectConfigJson
297323 ]
298324
299325setup :: IO ()