master
cpp 138 lines 4.8 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft. All rights reserved.
4
5 Module Name:
6
7 WSLCE2ENetworkRemoveTests.cpp
8
9 Abstract:
10
11 This file contains end-to-end tests for WSLC.
12 --*/
13
14 #include "precomp.h"
15 #include "windows/Common.h"
16 #include "WSLCExecutor.h"
17 #include "WSLCE2EHelpers.h"
18
19 namespace WSLCE2ETests {
20 using namespace wsl::shared;
21
22 class WSLCE2ENetworkRemoveTests
23 {
24 WSLC_TEST_CLASS(WSLCE2ENetworkRemoveTests)
25
26 TEST_METHOD_SETUP(MethodSetup)
27 {
28 EnsureNetworkDoesNotExist(TestNetworkName);
29 EnsureNetworkDoesNotExist(TestNetworkName2);
30 return true;
31 }
32
33 TEST_CLASS_CLEANUP(ClassCleanup)
34 {
35 EnsureNetworkDoesNotExist(TestNetworkName);
36 EnsureNetworkDoesNotExist(TestNetworkName2);
37 return true;
38 }
39
40 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_HelpCommand)
41 {
42 auto result = RunWslc(L"network remove --help");
43 result.Verify({.Stderr = L"", .ExitCode = 0});
44 VERIFY_IS_FALSE(result.Stdout.value().empty());
45 }
46
47 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_MissingNetworkName)
48 {
49 auto result = RunWslc(L"network remove");
50 result.Verify({.Stdout = L"", .ExitCode = 1});
51 VERIFY_IS_TRUE(result.StderrContainsSubstring(L"Required argument not provided: 'network-name'"));
52 }
53
54 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_Valid)
55 {
56 auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName));
57 result.Verify({.Stderr = L"", .ExitCode = 0});
58
59 VerifyNetworkIsListed(TestNetworkName);
60
61 result = RunWslc(std::format(L"network remove {}", TestNetworkName));
62 result.Verify({.Stdout = std::format(L"{}\r\n", TestNetworkName), .Stderr = L"", .ExitCode = 0});
63
64 VerifyNetworkIsNotListed(TestNetworkName);
65 }
66
67 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_Multiple_Valid)
68 {
69 auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName));
70 result.Verify({.Stderr = L"", .ExitCode = 0});
71 result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName2));
72 result.Verify({.Stderr = L"", .ExitCode = 0});
73
74 VerifyNetworkIsListed(TestNetworkName);
75 VerifyNetworkIsListed(TestNetworkName2);
76
77 result = RunWslc(std::format(L"network remove {} {}", TestNetworkName, TestNetworkName2));
78 result.Verify({.Stderr = L"", .ExitCode = 0});
79
80 VerifyNetworkIsNotListed(TestNetworkName);
81 VerifyNetworkIsNotListed(TestNetworkName2);
82 }
83
84 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_NotFound)
85 {
86 auto result = RunWslc(std::format(L"network remove {}", TestNetworkName));
87 result.Verify({.Stdout = L"", .Stderr = std::format(L"Network not found: '{}'\r\n", TestNetworkName), .ExitCode = 1});
88 }
89
90 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_MixedFoundNotFound)
91 {
92 auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName));
93 result.Verify({.Stderr = L"", .ExitCode = 0});
94 VerifyNetworkIsListed(TestNetworkName);
95
96 result = RunWslc(std::format(L"network remove {} {}", TestNetworkName, TestNetworkName2));
97 result.Verify(
98 {.Stdout = std::format(L"{}\r\n", TestNetworkName),
99 .Stderr = std::format(L"Network not found: '{}'\r\n", TestNetworkName2),
100 .ExitCode = 1});
101 VerifyNetworkIsNotListed(TestNetworkName);
102 }
103
104 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_Force_NotFound)
105 {
106 auto result = RunWslc(std::format(L"network remove --force {}", TestNetworkName));
107 result.Verify({.Stdout = L"", .Stderr = L"", .ExitCode = 0});
108 }
109
110 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_Force_Valid)
111 {
112 auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName));
113 result.Verify({.Stderr = L"", .ExitCode = 0});
114
115 VerifyNetworkIsListed(TestNetworkName);
116
117 result = RunWslc(std::format(L"network remove --force {}", TestNetworkName));
118 result.Verify({.Stdout = std::format(L"{}\r\n", TestNetworkName), .Stderr = L"", .ExitCode = 0});
119
120 VerifyNetworkIsNotListed(TestNetworkName);
121 }
122
123 WSLC_TEST_METHOD(WSLCE2E_Network_Remove_Force_MixedFoundNotFound)
124 {
125 auto result = RunWslc(std::format(L"network create --driver bridge {}", TestNetworkName));
126 result.Verify({.Stderr = L"", .ExitCode = 0});
127 VerifyNetworkIsListed(TestNetworkName);
128
129 result = RunWslc(std::format(L"network remove --force {} {}", TestNetworkName, TestNetworkName2));
130 result.Verify({.Stdout = std::format(L"{}\r\n", TestNetworkName), .Stderr = L"", .ExitCode = 0});
131 VerifyNetworkIsNotListed(TestNetworkName);
132 }
133
134 private:
135 const std::wstring TestNetworkName = L"wslc-e2e-network-remove";
136 const std::wstring TestNetworkName2 = L"wslc-e2e-network-remove-2";
137 };
138 } // namespace WSLCE2ETests