Skip to content

Commit

Permalink
Change the visibility of AddresseRange field to public.
Browse files Browse the repository at this point in the history
  • Loading branch information
Justin BOUDT committed Mar 11, 2024
1 parent 3c44160 commit e1b42c8
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 129 deletions.
6 changes: 2 additions & 4 deletions connect_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ func TestBindingSMSC(t *testing.T) {
})
t.Run("RX", func(t *testing.T) {
addrRange := pdu.AddressRange{}
err := addrRange.SetAddressRange("31218")
require.NoError(t, err)
addrRange.AddressRange = "31218"
checker(t, RXConnector(NonTLSDialer, nextAuth(), WithAddressRange(addrRange)))
})

Expand All @@ -57,8 +56,7 @@ func TestBindingSMSC(t *testing.T) {

t.Run("TRX", func(t *testing.T) {
addrRange := pdu.AddressRange{}
err := addrRange.SetAddressRange("31218")
require.NoError(t, err)
addrRange.AddressRange = "31218"
checker(t, TRXConnector(NonTLSDialer, nextAuth(), WithAddressRange(addrRange)))
})
}
Expand Down
85 changes: 10 additions & 75 deletions pdu/AddressRange.go
Original file line number Diff line number Diff line change
@@ -1,92 +1,27 @@
package pdu

import (
"fmt"

"github.com/linxGnu/gosmpp/data"
)

// AddressRange smpp address range of src and dst.
type AddressRange struct {
ton byte
npi byte
addressRange string
}

// NewAddressRange create new AddressRange with default max length.
func NewAddressRange() AddressRange {
return AddressRange{ton: data.GetDefaultTon(), npi: data.GetDefaultNpi()}
}

// NewAddressRangeWithAddr create new AddressRange.
func NewAddressRangeWithAddr(addr string) (a AddressRange, err error) {
a = NewAddressRange()
err = a.SetAddressRange(addr)
return
}

// NewAddressRangeWithTonNpi create new AddressRange with ton, npi.
func NewAddressRangeWithTonNpi(ton, npi byte) AddressRange {
return AddressRange{ton: ton, npi: npi}
}

// NewAddressRangeWithTonNpiAddr returns new address with ton, npi, addr string.
func NewAddressRangeWithTonNpiAddr(ton, npi byte, addr string) (a AddressRange, err error) {
a = NewAddressRangeWithTonNpi(ton, npi)
err = a.SetAddressRange(addr)
return
Ton byte
Npi byte
AddressRange string
}

// Unmarshal from buffer.
func (c *AddressRange) Unmarshal(b *ByteBuffer) (err error) {
if c.ton, err = b.ReadByte(); err == nil {
if c.npi, err = b.ReadByte(); err == nil {
c.addressRange, err = b.ReadCString()
if c.Ton, err = b.ReadByte(); err == nil {
if c.Npi, err = b.ReadByte(); err == nil {
c.AddressRange, err = b.ReadCString()
}
}
return
}

// Marshal to buffer.
func (c *AddressRange) Marshal(b *ByteBuffer) {
b.Grow(3 + len(c.addressRange))

_ = b.WriteByte(c.ton)
_ = b.WriteByte(c.npi)
_ = b.WriteCString(c.addressRange)
}

// SetAddressRange sets address range.
func (c *AddressRange) SetAddressRange(addr string) (err error) {
if len(addr) > data.SM_ADDR_RANGE_LEN {
err = fmt.Errorf("Address len exceed limit. (%d > %d)", len(addr), data.SM_ADDR_RANGE_LEN)
} else {
c.addressRange = addr
}
return
}

// SetTon sets ton.
func (c *AddressRange) SetTon(ton byte) {
c.ton = ton
}

// SetNpi sets npi.
func (c *AddressRange) SetNpi(npi byte) {
c.npi = npi
}

// AddressRange returns assigned address range (in string).
func (c *AddressRange) AddressRange() string {
return c.addressRange
}

// Ton returns assigned ton.
func (c *AddressRange) Ton() byte {
return c.ton
}
b.Grow(3 + len(c.AddressRange))

// Npi returns assigned npi.
func (c *AddressRange) Npi() byte {
return c.npi
_ = b.WriteByte(c.Ton)
_ = b.WriteByte(c.Npi)
_ = b.WriteCString(c.AddressRange)
}
49 changes: 7 additions & 42 deletions pdu/AddressRange_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,56 +7,21 @@ import (
)

func TestAddressRange(t *testing.T) {
t.Run("new", func(t *testing.T) {
a, err := NewAddressRangeWithAddr("abc")
require.Nil(t, err)
require.Equal(t, "abc", a.AddressRange())
})

t.Run("newWithAddr", func(t *testing.T) {
_, err := NewAddressRangeWithAddr("12345678901234567890121234567890123456789012")
require.NotNil(t, err)
})

t.Run("newTonNpi", func(t *testing.T) {
a := NewAddressRangeWithTonNpi(3, 7)
require.Nil(t, a.SetAddressRange("123456789"))
require.EqualValues(t, 3, a.Ton())
require.EqualValues(t, 7, a.Npi())
require.Equal(t, "123456789", a.AddressRange())
a.SetTon(11)
a.SetNpi(19)
require.EqualValues(t, 11, a.Ton())
require.EqualValues(t, 19, a.Npi())
})

t.Run("newTonNpiAddr", func(t *testing.T) {
a, err := NewAddressRangeWithTonNpiAddr(3, 7, "123456789")
require.Nil(t, err)
require.EqualValues(t, 3, a.Ton())
require.EqualValues(t, 7, a.Npi())
require.Equal(t, "123456789", a.AddressRange())
a.SetTon(11)
a.SetNpi(19)
require.EqualValues(t, 11, a.Ton())
require.EqualValues(t, 19, a.Npi())
})

t.Run("unmarshal", func(t *testing.T) {
buf := NewBuffer(fromHex("315b7068616e746f6d537472696b6500"))
var a AddressRange
require.Nil(t, a.Unmarshal(buf))
require.Zero(t, buf.Len())
require.Equal(t, "phantomStrike", a.AddressRange())
require.EqualValues(t, 49, a.Ton())
require.EqualValues(t, 91, a.Npi())
require.Equal(t, "phantomStrike", a.AddressRange)
require.EqualValues(t, 49, a.Ton)
require.EqualValues(t, 91, a.Npi)
})

t.Run("marshal", func(t *testing.T) {
a, err := NewAddressRangeWithAddr("phantomOpera")
require.Nil(t, err)
a.SetTon(95)
a.SetNpi(13)
a := AddressRange{}
a.AddressRange = "phantomOpera"
a.Ton = 95
a.Npi = 13

buf := NewBuffer(nil)
a.Marshal(buf)
Expand Down
2 changes: 1 addition & 1 deletion pdu/BindRequest.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func NewBindRequest(t BindingType) (b *BindRequest) {
SystemID: data.DFLT_SYSID,
Password: data.DFLT_PASS,
SystemType: data.DFLT_SYSTYPE,
AddressRange: NewAddressRange(),
AddressRange: AddressRange{},
InterfaceVersion: data.SMPP_V34,
}

Expand Down
16 changes: 9 additions & 7 deletions pdu/BindRequest_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ func TestBindRequest(t *testing.T) {
req.Password = "password"
req.SystemType = "only"
req.InterfaceVersion = 44
require.Nil(t, req.AddressRange.SetAddressRange("emptY"))
req.AddressRange.SetTon(23)
req.AddressRange.SetNpi(101)
req.AddressRange.AddressRange = "emptY"
req.AddressRange.Ton = 23
req.AddressRange.Npi = 101

validate(t,
req,
Expand All @@ -42,7 +42,9 @@ func TestBindRequest(t *testing.T) {
req.Password = "password"
req.SystemType = "only"
req.InterfaceVersion = 44
req.AddressRange, _ = NewAddressRangeWithTonNpiAddr(23, 101, "emptY")
req.AddressRange.AddressRange = "emptY"
req.AddressRange.Ton = 23
req.AddressRange.Npi = 101

validate(t,
req,
Expand All @@ -62,9 +64,9 @@ func TestBindRequest(t *testing.T) {
req.Password = "password"
req.SystemType = "only"
req.InterfaceVersion = 44
require.Nil(t, req.AddressRange.SetAddressRange("emptY"))
req.AddressRange.SetTon(23)
req.AddressRange.SetNpi(101)
req.AddressRange.AddressRange = "emptY"
req.AddressRange.Ton = 23
req.AddressRange.Npi = 101

validate(t,
req,
Expand Down

0 comments on commit e1b42c8

Please sign in to comment.