| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- package nebula
 
- import (
 
- 	"net/netip"
 
- 	"testing"
 
- 	"github.com/stretchr/testify/assert"
 
- 	"github.com/stretchr/testify/require"
 
- )
 
- func TestCalculatedRemoteApply(t *testing.T) {
 
- 	// Test v4 addresses
 
- 	ipNet := netip.MustParsePrefix("192.168.1.0/24")
 
- 	c, err := newCalculatedRemote(ipNet, ipNet, 4242)
 
- 	require.NoError(t, err)
 
- 	input, err := netip.ParseAddr("10.0.10.182")
 
- 	require.NoError(t, err)
 
- 	expected, err := netip.ParseAddr("192.168.1.182")
 
- 	require.NoError(t, err)
 
- 	assert.Equal(t, netAddrToProtoV4AddrPort(expected, 4242), c.ApplyV4(input))
 
- 	// Test v6 addresses
 
- 	ipNet = netip.MustParsePrefix("ffff:ffff:ffff:ffff::0/64")
 
- 	c, err = newCalculatedRemote(ipNet, ipNet, 4242)
 
- 	require.NoError(t, err)
 
- 	input, err = netip.ParseAddr("beef:beef:beef:beef:beef:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	expected, err = netip.ParseAddr("ffff:ffff:ffff:ffff:beef:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	assert.Equal(t, netAddrToProtoV6AddrPort(expected, 4242), c.ApplyV6(input))
 
- 	// Test v6 addresses part 2
 
- 	ipNet = netip.MustParsePrefix("ffff:ffff:ffff:ffff:ffff::0/80")
 
- 	c, err = newCalculatedRemote(ipNet, ipNet, 4242)
 
- 	require.NoError(t, err)
 
- 	input, err = netip.ParseAddr("beef:beef:beef:beef:beef:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	expected, err = netip.ParseAddr("ffff:ffff:ffff:ffff:ffff:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	assert.Equal(t, netAddrToProtoV6AddrPort(expected, 4242), c.ApplyV6(input))
 
- 	// Test v6 addresses part 2
 
- 	ipNet = netip.MustParsePrefix("ffff:ffff:ffff::0/48")
 
- 	c, err = newCalculatedRemote(ipNet, ipNet, 4242)
 
- 	require.NoError(t, err)
 
- 	input, err = netip.ParseAddr("beef:beef:beef:beef:beef:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	expected, err = netip.ParseAddr("ffff:ffff:ffff:beef:beef:beef:beef:beef")
 
- 	require.NoError(t, err)
 
- 	assert.Equal(t, netAddrToProtoV6AddrPort(expected, 4242), c.ApplyV6(input))
 
- }
 
- func Test_newCalculatedRemote(t *testing.T) {
 
- 	c, err := newCalculatedRemote(netip.MustParsePrefix("1::1/128"), netip.MustParsePrefix("1.0.0.0/32"), 4242)
 
- 	require.EqualError(t, err, "invalid mask: 1.0.0.0/32 for cidr: 1::1/128")
 
- 	require.Nil(t, c)
 
- 	c, err = newCalculatedRemote(netip.MustParsePrefix("1.0.0.0/32"), netip.MustParsePrefix("1::1/128"), 4242)
 
- 	require.EqualError(t, err, "invalid mask: 1::1/128 for cidr: 1.0.0.0/32")
 
- 	require.Nil(t, c)
 
- 	c, err = newCalculatedRemote(netip.MustParsePrefix("1.0.0.0/32"), netip.MustParsePrefix("1.0.0.0/32"), 4242)
 
- 	require.NoError(t, err)
 
- 	require.NotNil(t, c)
 
- 	c, err = newCalculatedRemote(netip.MustParsePrefix("1::1/128"), netip.MustParsePrefix("1::1/128"), 4242)
 
- 	require.NoError(t, err)
 
- 	require.NotNil(t, c)
 
- }
 
 
  |