public void Enumerable_ShouldThrow_WhenProtocolIsNotSupported(VpnProtocol protocol)
        {
            // Arrange
            var endpoint = new VpnEndpoint(new VpnHost("abc.com", "1.2.3.4", string.Empty), protocol, 54321);
            var subject  = new EndpointArguments(endpoint);

            // Act
            Action action = () => subject.ToList();

            // Assert
            action.Should().Throw <ArgumentException>();
        }
        public void Enumerable_ShouldContain_RemoteOption()
        {
            // Arrange
            var endpoint = new VpnEndpoint(new VpnHost("abc.com", "11.22.33.44", string.Empty), VpnProtocol.OpenVpnUdp, 61874);
            var subject  = new EndpointArguments(endpoint);

            // Act
            var result = subject.ToList();

            // Assert
            result.First().Should().StartWith($"--remote {endpoint.Server.Ip} {endpoint.Port}");
        }
        public void Enumerable_ShouldMap_VpnProtocol(VpnProtocol protocol, string expected)
        {
            // Arrange
            var endpoint = new VpnEndpoint(new VpnHost("abc.com", "7.7.7.7", string.Empty), protocol, 44444);
            var subject  = new EndpointArguments(endpoint);

            // Act
            var result = subject.ToList();

            // Assert
            result.Should().Contain($"--remote {endpoint.Server.Ip} {endpoint.Port} {expected}");
        }
        public void Enumerable_ShouldContain_ExpectedNumberOfOptions()
        {
            // Arrange
            var endpoint = new VpnEndpoint(new VpnHost("abc.com", "4.5.6.7", string.Empty), VpnProtocol.OpenVpnUdp, 48965);
            var subject  = new EndpointArguments(endpoint);

            // Act
            var result = subject.ToList();

            // Assert
            result.Should().HaveCount(1);
        }