MCPcopy
hub / github.com/nats-io/nats.go / TestTimeoutWriterRecovery

Function TestTimeoutWriterRecovery

nats_test.go:1833–1878  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1831func (mc *mockConn) SetReadDeadline(t time.Time) error { return nil }
1832
1833func TestTimeoutWriterRecovery(t *testing.T) {
1834 mc := &mockConn{temporaryFailures: 2}
1835 tw := &timeoutWriter{
1836 timeout: time.Second,
1837 conn: mc,
1838 }
1839 n, err := tw.Write([]byte("foo"))
1840 if err == nil {
1841 t.Fatal("Unexpected success")
1842 }
1843 if n != 0 {
1844 t.Fatalf("Expected 0 bytes, got %d", n)
1845 }
1846 n, err = tw.Write([]byte("bar"))
1847 if err == nil {
1848 t.Fatal("Unexpected success")
1849 }
1850 if n != 0 {
1851 t.Fatalf("Expected 0 bytes, got: %d", n)
1852 }
1853
1854 // Should succeed since it was a temporary error.
1855 testData := []byte("quux")
1856 n, err = tw.Write(testData)
1857 if err != nil {
1858 t.Fatalf("Expected success, got: %v", err)
1859 }
1860 if n != len(testData) {
1861 t.Fatalf("Expected %d, got: %d", len(testData), n)
1862 }
1863 if !bytes.Equal(mc.data, testData) {
1864 t.Fatalf("Expected %q, got: %q", testData, mc.data)
1865 }
1866 testData2 := []byte("quuz")
1867 n, err = tw.Write(testData2)
1868 if err != nil {
1869 t.Fatalf("Expected success, got: %v", err)
1870 }
1871 if n != len(testData2) {
1872 t.Fatalf("Expected %d bytes written, got %d", len(testData2), n)
1873 }
1874 expectedData := append(testData, testData2...)
1875 if !bytes.Equal(mc.data, expectedData) {
1876 t.Fatalf("Expected data %q, got %q", expectedData, mc.data)
1877 }
1878}
1879
1880func TestValidateSubject(t *testing.T) {
1881 tests := []struct {

Callers

nothing calls this directly

Calls 3

WriteMethod · 0.95
FatalfMethod · 0.80
EqualMethod · 0.80

Tested by

no test coverage detected