forked from Deuxfleurs/bottin
77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
|
package message
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func toHex(b []byte) (r string) {
|
||
|
r = "[ "
|
||
|
for _, e := range b {
|
||
|
r += fmt.Sprintf("0x%x ", e)
|
||
|
}
|
||
|
return r + "]"
|
||
|
}
|
||
|
|
||
|
func TestMessageID(t *testing.T) {
|
||
|
m := NewLDAPMessageWithProtocolOp(UnbindRequest{})
|
||
|
m.SetMessageID(128)
|
||
|
buf, err := m.Write()
|
||
|
if err != nil {
|
||
|
t.Errorf("marshalling failed with %v", err)
|
||
|
}
|
||
|
t.Logf("%v", toHex(buf.Bytes()))
|
||
|
|
||
|
ret, err := ReadLDAPMessage(NewBytes(0, buf.Bytes()))
|
||
|
if err != nil {
|
||
|
t.Errorf("unmarshalling failed with %v", err)
|
||
|
}
|
||
|
if _, ok := ret.ProtocolOp().(UnbindRequest); !ok {
|
||
|
t.Errorf("should be an unbind request")
|
||
|
}
|
||
|
if ret.MessageID() != 128 {
|
||
|
t.Errorf("Expect message id 128, got %d", ret.MessageID())
|
||
|
}
|
||
|
t.Log("Done, marshal/unmarshall worked")
|
||
|
}
|
||
|
|
||
|
func TestSearchEntry(t *testing.T) {
|
||
|
m := NewLDAPMessageWithProtocolOp(SearchResultEntry{
|
||
|
objectName:"cn=êige€nbgtz,ou=users,dc=deuxfleurs,dc=fr",
|
||
|
attributes: PartialAttributeList{
|
||
|
PartialAttribute{
|
||
|
type_:"displayname",
|
||
|
vals:[]AttributeValue{"êiGe€NBgTZ"},
|
||
|
},
|
||
|
PartialAttribute{
|
||
|
type_:"objectclass",
|
||
|
vals:[]AttributeValue{"inetOrgPerson"},
|
||
|
},
|
||
|
PartialAttribute{
|
||
|
type_:"objectclass",
|
||
|
vals:[]AttributeValue{"organizationalPerson"},
|
||
|
},
|
||
|
PartialAttribute{
|
||
|
type_:"objectclass",
|
||
|
vals:[]AttributeValue{"person"},
|
||
|
},
|
||
|
PartialAttribute{
|
||
|
type_:"objectclass",
|
||
|
vals:[]AttributeValue{"top"},
|
||
|
},
|
||
|
PartialAttribute{
|
||
|
type_:"structuralobjectclass",
|
||
|
vals:[]AttributeValue{"inetOrgPerson"},
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
m.SetMessageID(24)
|
||
|
buf, err := m.Write()
|
||
|
if err != nil {
|
||
|
t.Errorf("marshalling failed with %v", err)
|
||
|
}
|
||
|
if buf.Bytes()[0] != 0x30 {
|
||
|
t.Logf("Malformed message: %v", toHex(buf.Bytes()))
|
||
|
}
|
||
|
}
|