func TestAddingForAnotherApp(t *testing.T) { store := NewMessageStore(2) appId := "myApp" message, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "Message", appId)) assert.NoError(t, err) store.Add(message, appId) anotherAppId := "anotherApp" anotherAppMessage, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "AnotherAppMessage", anotherAppId)) assert.NoError(t, err) store.Add(anotherAppMessage, anotherAppId) messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(appId)) assert.NoError(t, err) assert.Equal(t, len(messages), 1) assert.Equal(t, message.GetRawMessage(), messages[0]) messages, err = testhelpers.ParseDumpedMessages(store.DumpFor(anotherAppId)) assert.NoError(t, err) assert.Equal(t, len(messages), 1) assert.Equal(t, anotherAppMessage.GetRawMessage(), messages[0]) }
func TestItDumpsAllMessagesForAnAppUser(t *testing.T) { expectedMessageString := "Some data" expectedMessage := testhelpers.MarshalledLogMessage(t, expectedMessageString, "myApp") dataReadChannel <- expectedMessage req, err := http.NewRequest("GET", "http://localhost:"+SERVER_PORT+DUMP_PATH+"?app=myApp", nil) assert.NoError(t, err) req.Header.Add("Authorization", testhelpers.VALID_SPACE_AUTHENTICATION_TOKEN) resp, err := http.DefaultClient.Do(req) assert.NoError(t, err) assert.Equal(t, resp.Header.Get("Content-Type"), "application/octet-stream") assert.Equal(t, resp.StatusCode, 200) body, err := ioutil.ReadAll(resp.Body) assert.NoError(t, err) resp.Body.Close() messages, err := testhelpers.ParseDumpedMessages(body) assert.NoError(t, err) testhelpers.AssertProtoBufferMessageEquals(t, expectedMessageString, messages[len(messages)-1]) }
// This test exists because the ring buffer will dump messages // that actually exist. func TestOnlyDumpsMessagesThatHaveALength(t *testing.T) { store := NewMessageStore(2) target := "appId" message, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "Hello world", target)) assert.NoError(t, err) store.Add(message, target) messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(target)) assert.NoError(t, err) assert.Equal(t, len(messages), 1) assert.Equal(t, messages[0], message.GetRawMessage()) }
func TestRegisterAndFor(t *testing.T) { store := NewMessageStore(2) appId := "myApp" appMessageString := "AppMessage" appMessage := testhelpers.MarshalledLogMessage(t, appMessageString, "myApp") message, err := logmessage.ParseMessage(appMessage) store.Add(message, appId) messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(appId)) assert.NoError(t, err) assert.Equal(t, len(messages), 1) testhelpers.AssertProtoBufferMessageEquals(t, appMessageString, messages[0]) }