| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 | 
							- package oi_test
 
- import (
 
- 	"io"
 
- 	"strings"
 
- 	"testing"
 
- 	"golib/pkg/telnet-go/oi"
 
- )
 
- func TestReadSeeker(t *testing.T) {
 
- 	data := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
 
- 	var readerAt io.ReaderAt = strings.NewReader(data)
 
- 	readSeeker := oi.ReadSeeker(readerAt)
 
- 	if nil == readSeeker {
 
- 		t.Errorf("nil io.ReadSeeker: %#v", readSeeker)
 
- 		return
 
- 	}
 
- 	{
 
- 		var buffer [10]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := len(buffer), n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := "0123456789", string(buffer[:]); expected != actual {
 
- 			t.Errorf("What was actually read (into the buffer) is not what was expected.")
 
- 			t.Logf("EXPECTED: %q", expected)
 
- 			t.Logf("ACTUAL:   %q", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		var buffer [26]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := len(buffer), n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := "ABCDEFGHIJKLMNOPQRSTUVWXYZ", string(buffer[:]); expected != actual {
 
- 			t.Errorf("What was actually read (into the buffer) is not what was expected.")
 
- 			t.Logf("EXPECTED: %q", expected)
 
- 			t.Logf("ACTUAL:   %q", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		offset := int64(-1) * int64(len("ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
 
- 		absolute, err := readSeeker.Seek(offset, io.SeekCurrent)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := int64(len("0123456789")), absolute; expected != actual {
 
- 			t.Errorf("The actual resulting Seek()'ed absolute offset is not what was not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		var buffer [3]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := len(buffer), n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := "ABC", string(buffer[:]); expected != actual {
 
- 			t.Errorf("What was actually read (into the buffer) is not what was expected.")
 
- 			t.Logf("EXPECTED: %q", expected)
 
- 			t.Logf("ACTUAL:   %q", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		offset := int64(5)
 
- 		absolute, err := readSeeker.Seek(offset, io.SeekStart)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := offset, absolute; expected != actual {
 
- 			t.Errorf("The actual resulting Seek()'ed absolute offset is not what was not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		var buffer [1]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := len(buffer), n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := "5", string(buffer[:]); expected != actual {
 
- 			t.Errorf("What was actually read (into the buffer) is not what was expected.")
 
- 			t.Logf("EXPECTED: %q", expected)
 
- 			t.Logf("ACTUAL:   %q", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		offset := int64(-3)
 
- 		absolute, err := readSeeker.Seek(offset, io.SeekEnd)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := int64(len("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"))+offset, absolute; expected != actual {
 
- 			t.Errorf("The actual resulting Seek()'ed absolute offset is not what was not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		var buffer [3]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if nil != err {
 
- 			t.Error("Did not expect an error, but actually got one.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := len(buffer), n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := "xyz", string(buffer[:]); expected != actual {
 
- 			t.Errorf("What was actually read (into the buffer) is not what was expected.")
 
- 			t.Logf("EXPECTED: %q", expected)
 
- 			t.Logf("ACTUAL:   %q", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		var buffer [1]byte
 
- 		var p []byte = buffer[:]
 
- 		n, err := readSeeker.Read(p)
 
- 		if expected, actual := io.EOF, err; expected != actual {
 
- 			t.Error("Did not actually get the errror that was expected.")
 
- 			t.Logf("EXPECTED ERROR: (%T) %q", expected, expected)
 
- 			t.Logf("ACTUAL ERROR:   (%T) %q", actual, actual)
 
- 			return
 
- 		}
 
- 		if expected, actual := 0, n; expected != actual {
 
- 			t.Errorf("Number of bytes actually read is not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 	}
 
- 	{
 
- 		offset := int64(-5)
 
- 		absolute, err := readSeeker.Seek(offset, io.SeekStart)
 
- 		if nil == err {
 
- 			t.Errorf("Expected to get an error, but did not actually get one: %#v", err)
 
- 			return
 
- 		}
 
- 		if _, casted := err.(oi.InvalidOffset); !casted {
 
- 			t.Error("Expected to get an error of type oi.InvalidOffset, but did not actually get it.")
 
- 			t.Logf("ERROR TYPE: %T", err)
 
- 			t.Logf("ERROR: %q", err)
 
- 			return
 
- 		}
 
- 		if expected, actual := int64(0), absolute; expected != actual {
 
- 			t.Errorf("The actual resulting Seek()'ed absolute offset is not what was not what was expected.")
 
- 			t.Logf("EXPECTED: %d", expected)
 
- 			t.Logf("ACTUAL:   %d", actual)
 
- 			return
 
- 		}
 
- 	}
 
- }
 
 
  |