blob: c26f8c4f0cd763ab46f165856777ca336248f35f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package utils
import (
"compress/gzip"
"testing"
v2 "github.com/apache/rocketmq-clients/golang/v5/protocol/v2"
)
func TestMod(t *testing.T) {
r := Mod(769024950, 4820134)
if r != 2623644 {
t.Error()
}
r = Mod(-500246785, 9326848)
if r != 3403007 {
t.Error()
}
}
func TestMod64(t *testing.T) {
r := Mod64(769024950, 4820134)
if r != 2623644 {
t.Error()
}
r = Mod64(-500246785, 9326848)
if r != 3403007 {
t.Error()
}
}
func TestParseAddress(t *testing.T) {
r := ParseAddress(nil)
if r != "" {
t.Error()
}
r = ParseAddress(&v2.Address{
Host: "127.0.0.1",
Port: 80,
})
if r != "127.0.0.1:80" {
t.Error()
}
}
func TestParseTarget(t *testing.T) {
_, err := ParseTarget("127.0.0.1")
if err == nil {
t.Error(err)
}
_, err = ParseTarget("127")
if err == nil {
t.Error(err)
}
_, err = ParseTarget("127.0.0.1:80")
if err != nil {
t.Error(err)
}
}
func TestMatchMessageType(t *testing.T) {
if MatchMessageType(&v2.MessageQueue{}, v2.MessageType_DELAY) {
t.Error()
}
if MatchMessageType(&v2.MessageQueue{
AcceptMessageTypes: []v2.MessageType{v2.MessageType_NORMAL},
}, v2.MessageType_DELAY) {
t.Error()
}
if !MatchMessageType(&v2.MessageQueue{
AcceptMessageTypes: []v2.MessageType{v2.MessageType_DELAY},
}, v2.MessageType_DELAY) {
t.Error()
}
}
func TestGZIPDecode(t *testing.T) {
_, err := GZIPDecode([]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
if err != gzip.ErrHeader {
t.Error()
}
bytes, err := GZIPDecode([]byte{31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 42, 202, 79, 206, 78, 45, 201, 45, 212, 77, 206, 201, 76, 205, 43, 209, 77, 207, 7, 0, 0, 0, 255, 255, 1, 0, 0, 255, 255, 97, 36, 132, 114, 18, 0, 0, 0})
if err != nil {
t.Error()
}
if string(bytes) != "rocketmq-client-go" {
t.Error()
}
}
func TestSelectAnAddress(t *testing.T) {
if SelectAnAddress(nil) != nil {
t.Error()
}
address := SelectAnAddress(&v2.Endpoints{
Addresses: []*v2.Address{
{
Host: "127.0.0.1",
Port: 80,
},
{
Host: "127.0.0.1",
Port: 81,
},
{
Host: "127.0.0.1",
Port: 82,
},
},
})
if address == nil {
t.Error()
}
if address.Host != "127.0.0.1" {
t.Error()
}
if address.Port < 80 || address.Port > 82 {
t.Error()
}
}
func TestCompareEndpoints(t *testing.T) {
if CompareEndpoints(nil, nil) != true {
t.Error()
}
if CompareEndpoints(&v2.Endpoints{}, nil) != false {
t.Error()
}
if CompareEndpoints(
&v2.Endpoints{
Addresses: []*v2.Address{
{
Host: "127.0.0.1",
Port: 80,
},
{
Host: "127.0.0.1",
Port: 81,
},
{
Host: "127.0.0.1",
Port: 82,
},
},
},
&v2.Endpoints{
Addresses: []*v2.Address{
{
Host: "127.0.0.1",
Port: 80,
},
{
Host: "127.0.0.1",
Port: 81,
},
},
}) {
t.Error()
}
if !CompareEndpoints(
&v2.Endpoints{
Addresses: []*v2.Address{
{
Host: "127.0.0.1",
Port: 80,
},
{
Host: "127.0.0.1",
Port: 81,
},
{
Host: "127.0.0.1",
Port: 82,
},
},
},
&v2.Endpoints{
Addresses: []*v2.Address{
{
Host: "127.0.0.1",
Port: 82,
},
{
Host: "127.0.0.1",
Port: 81,
},
{
Host: "127.0.0.1",
Port: 80,
},
},
}) {
t.Error()
}
}