blob: 823656f4f0a8dca6cef4afd74ca66827e2c4f8de [file] [log] [blame]
Lorenz Brundbac6cc2020-11-30 10:57:26 +01001// Copyright 2020 The Monogon Project Authors.
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
17package dhcp4c
18
19import (
20 "net"
21 "testing"
22
23 "github.com/insomniacslk/dhcp/dhcpv4"
24 "github.com/stretchr/testify/assert"
25)
26
27func TestLeaseDHCPServers(t *testing.T) {
28 var tests = []struct {
29 name string
30 lease *Lease
31 expected DNSServers
32 }{{
33 name: "ReturnsNilWithNoLease",
34 lease: nil,
35 expected: nil,
36 }, {
37 name: "DiscardsInvalidIPs",
38 lease: &Lease{
39 Options: dhcpv4.OptionsFromList(dhcpv4.OptDNS(net.IP{0, 0, 0, 0})),
40 },
41 expected: nil,
42 }, {
43 name: "DeduplicatesIPs",
44 lease: &Lease{
45 Options: dhcpv4.OptionsFromList(dhcpv4.OptDNS(net.IP{192, 0, 2, 1}, net.IP{192, 0, 2, 2}, net.IP{192, 0, 2, 1})),
46 },
47 expected: DNSServers{net.IP{192, 0, 2, 1}, net.IP{192, 0, 2, 2}},
48 }}
49 for _, test := range tests {
50 t.Run(test.name, func(t *testing.T) {
51 res := test.lease.DNSServers()
52 assert.Equal(t, test.expected, res)
53 })
54 }
55}