/*
 * Copyright (C) 2019 Google Inc.
 *
 * Licensed 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 com.google.cloud.teleport.splunk;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;

import org.junit.Test;

/** Unit tests for {@link SplunkEvent} class. */
public class SplunkEventTest {

  /** Test whether a {@link SplunkEvent} created via its builder
   * can be compared correctly.
   */
  @Test
  public void testEquals() {

    String event = "test-event";
    String host = "test-host";
    String index = "test-index";
    String source = "test-source";
    String sourceType = "test-source-type";
    Long time = 123456789L;

    SplunkEvent actualEvent =
        SplunkEvent.newBuilder()
            .withEvent(event)
            .withHost(host)
            .withIndex(index)
            .withSource(source)
            .withSourceType(sourceType)
            .withTime(time)
            .build();

    assertThat(
        actualEvent,
        is(
            equalTo(
                SplunkEvent.newBuilder()
                    .withEvent(event)
                    .withHost(host)
                    .withIndex(index)
                    .withSource(source)
                    .withSourceType(sourceType)
                    .withTime(time)
                    .build())));

    assertThat(
        actualEvent,
        is(
            not(
                equalTo(
                    SplunkEvent.newBuilder()
                        .withEvent("a-different-test-event")
                        .withHost(host)
                        .withIndex(index)
                        .withSource(source)
                        .withSourceType(sourceType)
                        .withTime(time)
                        .build()))));
  }
}

@@ -814,16 +814,51 @@
 tThat;%0A%0A
+import com.google.gson.JsonObject;%0A
 import o
@@ -872,16 +872,16 @@
 t.Test;%0A
-
 %0A/** Uni
@@ -1298,16 +1298,108 @@
 456789L;
+%0A    JsonObject fields = new JsonObject();%0A    fields.addProperty(%22test-key%22, %22test-value%22);
 %0A%0A    Sp
@@ -1635,32 +1635,64 @@
 .withTime(time)%0A
+            .withFields(fields)%0A
             .bui
@@ -2037,32 +2037,72 @@
 .withTime(time)%0A
+                    .withFields(fields)%0A
                 
@@ -2486,32 +2486,32 @@
 ype(sourceType)%0A
-
                 
@@ -2526,32 +2526,76 @@
 .withTime(time)%0A
+                        .withFields(fields)%0A
                 

Add withFields() in SplunkEventTest