content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Thu Mar 21 01:47:06 GMT 2024
   */
  
  package de.huxhorn.lilith.data.access;
  
  import org.junit.jupiter.api.Test;
  import static org.junit.jupiter.api.Assertions.*;
  import org.junit.jupiter.api.Timeout;
  import java.util.concurrent.TimeUnit;
  import de.huxhorn.lilith.data.access.AccessEvent;
  import de.huxhorn.lilith.data.access.LoggerContext;
  import java.util.HashMap;
  import java.util.Map;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.junit.runner.RunWith;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class AccessEvent_ESTest extends AccessEvent_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTimeStampReturningZero() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        
        // When
        Long arg0 = new Long(0L);
        accessEvent.setTimeStamp(arg0);
        
        // Then
        assertEquals(0L, (long)accessEvent.getTimeStamp());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTimeStampReturningPositive() throws Throwable  {
        // Given a new AccessEvent with a time stamp
        AccessEvent accessEvent = new AccessEvent();
        Long arg0 = new Long(2138L);
        accessEvent.setTimeStamp(arg0);
        
        // When we call getTimeStamp on the AccessEvent object
        Long timeStamp = accessEvent.getTimeStamp();
        
        // Then the returned value should be equal to the input value
        assertEquals(2138L, (long)timeStamp);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTimeStampReturningNegative() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        Long arg0 = new Long((-1L));
        
        // When
        accessEvent.setTimeStamp(arg0);
        
        // Then
        Long timeStamp = accessEvent.getTimeStamp();
        assertEquals((-1L), (long)timeStamp);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetStatusCodeReturningNegative() throws Throwable  {
        // Given: A new AccessEvent object with a status code of -1
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setStatusCode(-1);
        
        // When: The getStatusCode method is called
        int statusCode = accessEvent.getStatusCode();
        
        // Then: The returned status code should be -1
        assertEquals(-1, statusCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetServerNameReturningEmptyString() throws Throwable  {
        // Given: A new instance of AccessEvent is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The server name is set to an empty string
        accessEvent.setServerName("");
        
        // Then: The getServerName() method should return an empty string
        String serverName = accessEvent.getServerName();
        assertEquals("", serverName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetResponseHeadersReturningMapWhereIsEmptyIsTrue() throws Throwable  {
        // Given: A new AccessEvent object is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The response headers are set to an empty HashMap
        HashMap<String, String> arg0 = new HashMap<String, String>();
        accessEvent.setResponseHeaders(arg0);
        
        // Then: The response headers should be an empty map
        Map<String, String> responseHeaders = accessEvent.getResponseHeaders();
        assertTrue(responseHeaders.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetResponseHeadersReturningMapWhereIsEmptyIsFalse() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        HashMap<String, String> requestHeaders = new HashMap<>();
        requestHeaders.put("Content-Type", "application/json");
        
        // When
        accessEvent.setResponseHeaders(requestHeaders);
        
        // Then
        Map<String, String> responseHeaders = accessEvent.getResponseHeaders();
        assertEquals(1, responseHeaders.size());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURLReturningEmptyString() throws Throwable  {
        // Given: A new AccessEvent object is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The request URL is set to an empty string
        accessEvent.setRequestURL("");
        
        // Then: The getRequestURL method should return an empty string
        assertEquals("", accessEvent.getRequestURL());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURIReturningEmptyString() throws Throwable  {
        // Given: an AccessEvent object with a set request URI
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURI("");
        
        // When: the getRequestURI method is called on the AccessEvent object
        String requestURI = accessEvent.getRequestURI();
        
        // Then: the returned value should be an empty string
        assertEquals("", requestURI);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestParametersReturningMapWhereIsEmptyIsFalse() throws Throwable  {
        // Given a populated AccessEvent object with request parameters
        AccessEvent accessEvent = new AccessEvent();
        HashMap<String, String[]> arg0 = new HashMap<>();
        String[] arg1 = new String[0];
        arg0.put((String) null, arg1);
        accessEvent.setRequestParameters(arg0);
        
        // When the getRequestParameters() method is called on the AccessEvent object
        Map<String, String[]> requestParameters = accessEvent.getRequestParameters();
        
        // Then the returned map should not be empty
        assertFalse(requestParameters.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestHeadersReturningMapWhereIsEmptyIsFalse() throws Throwable  {
        // Create a new AccessEvent object and set its request headers.
        AccessEvent accessEvent = new AccessEvent();
        HashMap<String, String> requestHeaders = new HashMap<>();
        requestHeaders.put("birthTime", "2022-01-01T00:00:00Z");
        accessEvent.setRequestHeaders(requestHeaders);
        
        // Verify that the AccessEvent object contains the expected request headers.
        Map<String, String> actualRequestHeaders = accessEvent.getRequestHeaders();
        assertEquals(1, actualRequestHeaders.size());
        assertEquals("2022-01-01T00:00:00Z", actualRequestHeaders.get("birthTime"));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteUserReturningNonEmptyString() throws Throwable  {
        // Given: A new AccessEvent object is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The remote user is set to "John Doe"
        accessEvent.setRemoteUser("John Doe");
        
        // Then: The getRemoteUser method should return the correct value
        assertEquals("John Doe", accessEvent.getRemoteUser());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteUserReturningEmptyString() throws Throwable  {
        // Given an AccessEvent object
        AccessEvent accessEvent = new AccessEvent();
        
        // When setting the remote user to an empty string
        accessEvent.setRemoteUser("");
        
        // Then the getRemoteUser method should return an empty string
        String remoteUser = accessEvent.getRemoteUser();
        assertEquals("", remoteUser);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteHostReturningEmptyString() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteHost("");
        String remoteHost = accessEvent.getRemoteHost();
        assertEquals("", remoteHost);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteAddressReturningNonEmptyString() throws Throwable  {
        // Given an AccessEvent object with a remote address set to "192.168.0.1"
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteAddress("192.168.0.1");
        
        // When the getRemoteAddress method is called on the AccessEvent object
        String remoteAddress = accessEvent.getRemoteAddress();
        
        // Then the remote address should be "192.168.0.1"
        assertEquals("192.168.0.1", remoteAddress);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteAddressReturningEmptyString() throws Throwable  {
        // Given a new AccessEvent object with an empty remote address
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteAddress("");
        
        // When the getRemoteAddress method is called on this event
        String remoteAddress = accessEvent.getRemoteAddress();
        
        // Then the return value should be an empty string
        assertEquals("", remoteAddress);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetProtocolReturningNonEmptyString() throws Throwable  {
        // Set up the test fixture
        AccessEvent accessEvent = new AccessEvent();
        
        // Execute the code under test
        accessEvent.setProtocol("HTTPS");
        
        // Verify the results
        assertEquals("HTTPS", accessEvent.getProtocol());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetProtocolReturningEmptyString() throws Throwable  {
        // Given: a new AccessEvent object with an empty string as the protocol value
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setProtocol("");
        
        // When: the getProtocol method is called on the AccessEvent object
        String protocol = accessEvent.getProtocol();
        
        // Then: the return value should be an empty string
        assertEquals("", protocol);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMethodReturningNonEmptyString() throws Throwable  {
        // Given a new AccessEvent object with the method "GET" set
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setMethod("GET");
        
        // When we call getMethod() on the object
        String actualMethod = accessEvent.getMethod();
        
        // Then we should receive the correct value for the method, which is "GET"
        assertEquals("GET", actualMethod);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMethodReturningEmptyString() throws Throwable  {
        // Create a new instance of the AccessEvent class
        AccessEvent event = new AccessEvent();
        
        // Set the method property to an empty string
        event.setMethod("");
        
        // Retrieve the value of the method property
        String actualMethod = event.getMethod();
        
        // Assert that the retrieved value is equal to the expected value
        assertEquals("", actualMethod);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLoggerContextReturningNonNull() throws Throwable  {
        // Given a new access event object
        AccessEvent accessEvent = new AccessEvent();
        
        // When the logger context is set to a non-null value
        LoggerContext arg0 = new LoggerContext();
        accessEvent.setLoggerContext(arg0);
        
        // Then the getLoggerContext method should return the set value
        assertEquals(arg0, accessEvent.getLoggerContext());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLocalPortReturningNegative() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setLocalPort((-2214));
        int localPort = accessEvent.getLocalPort();
        assertEquals((-2214), localPort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetServerName() throws Throwable  {
        // Given: A new instance of the AccessEvent class is created with a server name set to "de.huxhorn.lilith.data.access.AccessEvent".
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setServerName("de.huxhorn.lilith.data.access.AccessEvent");
        
        // When: The hashCode() method is called on the instance of AccessEvent.
        int hashCode = accessEvent.hashCode();
        
        // Then: The hash code should be a non-zero value.
        assertTrue(hashCode != 0);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetProtocol() throws Throwable  {
        // Given: An access event object has been created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The access event's protocol is set to "AccessEvent[loggerContext=null, timeStamp=null]"
        accessEvent.setProtocol("AccessEvent[loggerContext=null, timeStamp=null]");
        
        // Then: The hash code of the access event should be computed and returned
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetRemoteHost() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteHost("192.168.0.1");
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetRequestURL() throws Throwable  {
        // Given a new AccessEvent object
        AccessEvent accessEvent = new AccessEvent();
        
        // When the request URL is set
        accessEvent.setRequestURL("https://www.example.com");
        
        // Then the hashCode method should return a non-zero value
        assertNotEquals(0, accessEvent.hashCode());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetRequestURI() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURI("/user/john_doe");
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetLoggerContext() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        LoggerContext arg0 = new LoggerContext();
        accessEvent.setLoggerContext(arg0);
        
        // When
        int hashCode = accessEvent.hashCode();
        
        // Then
        assertEquals(42, hashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetTimeStamp() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        Long arg0 = new Long(0L);
        
        // When
        accessEvent.setTimeStamp(arg0);
        int hashCode = accessEvent.hashCode();
        
        // Then
        assertEquals(0, hashCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteUserAndSetServerName() throws Throwable  {
        // Given two AccessEvents with different remote users,
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteUser("I]");
        AccessEvent arg0 = new AccessEvent();
        arg0.setServerName("I]");
        arg0.setRemoteUser("J]");
        
        // When we compare them with the equals method,
        boolean equals = accessEvent.equals(arg0);
        
        // Then they should not be equal,
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetServerNameWithEmptyString() throws Throwable  {
        // Given: a new AccessEvent object and an equal AccessEvent object
        AccessEvent arg0 = new AccessEvent();
        AccessEvent accessEvent = new AccessEvent();
        
        // When: setting the server name to "" for both objects
        arg0.setServerName("");
        accessEvent.setServerName("");
        
        // Then: ensure that the two objects are equal
        assertTrue(arg0.equals((Object) accessEvent));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetServerName() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setServerName("HQ6-12345");
        AccessEvent arg0 = new AccessEvent();
        
        // When
        boolean equals = accessEvent.equals(arg0);
        
        // Then
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURL0() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        assertTrue(arg0.equals((Object)accessEvent));
        
        arg0.setRequestURL("g3");
        boolean equals = accessEvent.equals(arg0);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURLAndEqualsReturningTrue() throws Throwable  {
        // Given an AccessEvent instance with a specific request URL
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURL("jR");
        
        // When we create another AccessEvent instance with the same request URL
        AccessEvent arg0 = new AccessEvent();
        arg0.setRequestURL("jR");
        
        // Then both instances should be equal
        assertTrue(accessEvent.equals(arg0));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURL1() throws Throwable  {
        // Create two instances of AccessEvent with different request URLs
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURL("jR");
        AccessEvent arg0 = new AccessEvent();
        arg0.setRequestURL("some other URL");
        
        // Test that the equals method returns false for two instances with different request URLs
        boolean equals = accessEvent.equals(arg0);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURI0() throws Throwable  {
        // Given: two AccessEvent objects, one with a specific requestURI and the other with a different requestURI
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        arg0.setRequestURI("3`H!B Au+W");
        
        // When: we call the equals method on both objects with the first object as an argument
        boolean equals = accessEvent.equals(arg0);
        
        // Then: the result of the equals method should be false, because the two objects have different requestURI values
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURIAndEqualsReturningTrue() throws Throwable  {
        AccessEvent accessEvent = new AccessEvent(); // This line creates an instance of the AccessEvent class
        AccessEvent arg0 = new AccessEvent(); // This line creates another instance of the AccessEvent class
        arg0.setRequestURI("Uy{"); // This line sets the request URI for the first instance of AccessEvent to "Uy{"
        assertFalse(arg0.equals((Object)accessEvent)); // This line asserts that the two instances are not equal (based on the default equals() method)
        
        accessEvent.setRequestURI("Uy{"); // This line sets the request URI for the second instance of AccessEvent to "Uy{"
        boolean equals = accessEvent.equals(arg0); // This line asserts that the two instances are equal (based on the custom equals() method)
        assertTrue(equals); // This line asserts that the equality check returned true
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRequestURI1() throws Throwable  {
        // Create two instances of the AccessEvent class with different request URIs
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURI("loggerContext=");
        AccessEvent arg0 = new AccessEvent();
        arg0.setRequestURI("loggerName=ROOT");
        
        // Check if the two instances are not equal
        assertFalse(accessEvent.equals(arg0));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteUser0() throws Throwable  {
        // Given two AccessEvent objects, "accessEvent" and "arg0", where "arg0" has a remote user set to "=U?"
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        arg0.setRemoteUser("=U?");
        
        // When the equals method is called on both objects with the first argument being "accessEvent" and the second argument being "arg0"
        boolean equals = accessEvent.equals(arg0);
        
        // Then the result of the comparison should be false, because the remote user set in "arg0" is not equal to the one in "accessEvent"
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteUser1() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteUser("admin");
        AccessEvent arg0 = new AccessEvent();
        
        // When
        boolean equals = accessEvent.equals(arg0);
        
        // Then
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteHost0() throws Throwable  {
        // Given: an AccessEvent object and a copy of the same object
        AccessEvent arg0 = new AccessEvent();
        AccessEvent accessEvent = new AccessEvent();
        
        // When: some fields are modified on one of the objects
        arg0.setRemoteHost("yG`&Xib:9**&");
        
        // Then: the equals method should return false when comparing the two objects
        assertFalse(accessEvent.equals((Object)arg0));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteHostAndEqualsReturningTrue() throws Throwable  {
        // Create two AccessEvent objects with the same remote host
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteHost("^");
        AccessEvent arg0 = new AccessEvent();
        arg0.setRemoteHost("^");
        
        // Test that they are not equal
        assertFalse(arg0.equals((Object)accessEvent));
        
        // Test that calling equals on both objects with the same argument returns true
        boolean equals = accessEvent.equals(arg0);
        assertTrue(arg0.equals((Object)accessEvent));
        assertTrue(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteHost1() throws Throwable  {
        // Given two AccessEvents, arg0 and accessEvent
        AccessEvent arg0 = new AccessEvent();
        AccessEvent accessEvent = new AccessEvent();
        
        // When the equals method is called on both objects with the same argument
        boolean result1 = accessEvent.equals(arg0);
        
        // Then the method should return true, since both objects are identical
        assertTrue(result1);
        
        // When the remoteHost field of the accessEvent object is changed
        accessEvent.setRemoteHost("yG`&Xib:9**&");
        
        // And the equals method is called again with the same argument
        boolean result2 = accessEvent.equals(arg0);
        
        // Then the method should return false, since the remoteHost field has been changed
        assertFalse(result2);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteAddress0() throws Throwable  {
        AccessEvent arg0 = new AccessEvent();
        arg0.setRemoteAddress("Uy{");
        
        // When: The AccessEvent is compared to another object of the same type, but with a different remote address
        AccessEvent accessEvent = new AccessEvent();
        boolean equals = accessEvent.equals(arg0);
        
        // Then: The two objects are not equal, as they have different remote addresses
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteAddressAndEqualsReturningTrue() throws Throwable  {
        // Set up two instances of the AccessEvent class with different remote addresses
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteAddress("hQ6[i?~?");
        AccessEvent arg0 = new AccessEvent();
        arg0.setRemoteAddress("hQ6[i?~?");
        
        // Verify that the two events are equal based on their remote address
        assertTrue(accessEvent.equals(arg0));
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetRemoteAddress1() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteAddress("hQ6[i?~?");
        AccessEvent arg0 = new AccessEvent();
        
        // When
        boolean equals = accessEvent.equals(arg0);
        
        // Then
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetProtocol0() throws Throwable  {
        // Test that two instances with different protocol values are not equal
        AccessEvent arg0 = new AccessEvent();
        arg0.setProtocol("NaqduIEMPQHmw");
        AccessEvent accessEvent = new AccessEvent();
        boolean equals = accessEvent.equals(arg0);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetProtocolAndEqualsReturningTrue() throws Throwable  {
        // Given: We have two AccessEvent objects, "accessEvent" and "arg0".
        // When: We call the equals method on "arg0" with "accessEvent" as an argument.
        // Then: The method should return true since "arg0" has the same protocol as "accessEvent".
        
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        assertFalse(arg0.equals((Object)accessEvent));
        
        // Given: We set the protocol of "arg0" to be the same as "accessEvent".
        arg0.setProtocol("NaqduIEMPQHmw");
        boolean equals = accessEvent.equals(arg0);
        assertTrue(arg0.equals((Object)accessEvent));
        assertTrue(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetMethod0() throws Throwable  {
        // Test that two objects are equal if they have the same values for all of their properties, including inherited ones.
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        assertTrue(arg0.equals((Object)accessEvent));
        
        // Verify that the method property is not taken into account when comparing objects for equality.
        arg0.setMethod("jR");
        boolean equals = accessEvent.equals(arg0);
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetMethodAndEqualsReturningTrue() throws Throwable  {
        // Create two AccessEvent objects with the same method name
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setMethod("`e");
        AccessEvent arg0 = new AccessEvent();
        arg0.setMethod("`e");
        
        // Assert that these two objects are equal, but not identical
        assertFalse(arg0.equals((Object)accessEvent));
        
        // Test the equals method with a different object that has the same method name
        boolean equals = accessEvent.equals(arg0);
        assertTrue(arg0.equals((Object)accessEvent));
        assertTrue(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetMethod1() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setMethod("`e");
        
        // When
        AccessEvent arg0 = new AccessEvent();
        boolean equals = accessEvent.equals(arg0);
        
        // Then
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetStatusCode() throws Throwable  {
        // No Comments were added
        AccessEvent arg0 = new AccessEvent();
        arg0.setStatusCode((-1));
        AccessEvent accessEvent = new AccessEvent();
        boolean equals = accessEvent.equals(arg0);
        assertEquals((-1), arg0.getStatusCode());
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSetLocalPort() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        AccessEvent arg0 = new AccessEvent();
        
        // When
        arg0.setLocalPort(-1396);
        boolean equals = accessEvent.equals(arg0);
        
        // Then
        assertEquals(-1396, arg0.getLocalPort());
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEquals() throws Throwable  {
        // Create an instance of AccessEvent with the default constructor
        AccessEvent accessEvent = new AccessEvent();
        
        // Call the equals method on the AccessEvent object with a string argument
        boolean equals = accessEvent.equals("yS_z6:");
        
        // Assert that the result of the equals method is false
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsWithNull() throws Throwable  {
        // Given: A new instance of AccessEvent
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The equals method is called with a null object
        boolean equals = accessEvent.equals(null);
        
        // Then: The result should be false
        assertFalse(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndEqualsReturningTrue() throws Throwable  {
        // Given an AccessEvent object, arg0
        AccessEvent arg0 = new AccessEvent();
        
        // When the equals method is called on the same object (arg0)
        boolean equals = arg0.equals(arg0);
        
        // Then it should return true to indicate that the objects are equal
        assertTrue(equals);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetMethod() throws Throwable  {
        // rollbacked to evosuite
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setMethod("GET");
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetRemoteAddress() throws Throwable  {
        // No Comments were added
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteAddress("192.168.0.1");
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURIReturningNull() throws Throwable  {
        // Given: We have an AccessEvent object
        AccessEvent accessEvent = new AccessEvent();
        
        // When: We retrieve the requestURI from the AccessEvent
        String requestURI = accessEvent.getRequestURI();
        
        // Then: The requestURI should be null
        assertNull(requestURI);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetMethodReturningNull() throws Throwable  {
        // Given an empty access event object
        AccessEvent accessEvent = new AccessEvent();
        
        // When we retrieve the method associated with the event
        String retrievedMethod = accessEvent.getMethod();
        
        // Then we expect the method to be null
        assertNull(retrievedMethod);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetTimeStampReturningNull() throws Throwable  {
        // Given an access event with no timestamp
        AccessEvent accessEvent = new AccessEvent();
        Long timeStamp = accessEvent.getTimeStamp();
        
        // When the access event is accessed
        // Then the timestamp should be null
        assertNull(timeStamp);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteAddressReturningNull() throws Throwable  {
        // Given: A new AccessEvent object is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The remote address is retrieved using the getRemoteAddress method
        String remoteAddress = accessEvent.getRemoteAddress();
        
        // Then: The remote address should be null
        assertNull(remoteAddress);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetServerNameReturningNonEmptyString() throws Throwable  {
        // Given: A new AccessEvent object has been created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The server name is set to "Production Server 123"
        accessEvent.setServerName("Production Server 123");
        
        // Then: The server name should be equal to "Production Server 123"
        String serverName = accessEvent.getServerName();
        assertEquals("Production Server 123", serverName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testHashCodeAndSetRemoteUser() throws Throwable  {
        // No Comments were added
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteUser("John Doe");
        accessEvent.hashCode();
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLoggerContextReturningNull() throws Throwable  {
        // Given an AccessEvent object with no LoggerContext associated with it
        AccessEvent accessEvent = new AccessEvent();
        
        // When we retrieve the LoggerContext from the AccessEvent object
        LoggerContext loggerContext = accessEvent.getLoggerContext();
        
        // Then we expect the LoggerContext to be null, as there is no associated LoggerContext with the AccessEvent object
        assertNull(loggerContext);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURIReturningNonEmptyString() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        
        // When
        accessEvent.setRequestURI("/home");
        
        // Then
        assertEquals("/home", accessEvent.getRequestURI());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetResponseHeadersReturningNull() throws Throwable  {
        // Given: The AccessEvent object has been created and the response headers have not yet been retrieved
        AccessEvent accessEvent = new AccessEvent();
        Map<String, String> expectedResponseHeaders = null;
        
        // When: The response headers are retrieved from the AccessEvent object
        Map<String, String> actualResponseHeaders = accessEvent.getResponseHeaders();
        
        // Then: The returned Map should be null as no response headers have been set on the AccessEvent object yet
        assertNull(actualResponseHeaders);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetStatusCodeReturningZero() throws Throwable  {
        // Given a valid input for getStatusCode(), i.e., an AccessEvent object,
        AccessEvent accessEvent = new AccessEvent();
        
        // When the method getStatusCode() is called on this input,
        int statusCode = accessEvent.getStatusCode();
        
        // Then the returned status code should be equal to 0, indicating a successful request.
        assertEquals(0, statusCode);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testEqualsAndSetProtocol1() throws Throwable  {
        // Given
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setProtocol("HTTPS");
        
        // When
        AccessEvent anotherAccessEvent = new AccessEvent();
        boolean equal = accessEvent.equals(anotherAccessEvent);
        
        // Then
        assertFalse(equal);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteHostReturningNull() throws Throwable  {
        // Given an AccessEvent object
        AccessEvent accessEvent = new AccessEvent();
        
        // When we call the getRemoteHost method on the AccessEvent object
        String remoteHost = accessEvent.getRemoteHost();
        
        // Then we expect the returned value to be null
        assertNull(remoteHost);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURLReturningNull() throws Throwable  {
        // Given: An instance of AccessEvent class is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The getRequestURL() method is called on the AccessEvent object
        String requestURL = accessEvent.getRequestURL();
        
        // Then: The returned value should be null
        assertNull(requestURL);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestHeadersReturningNull() throws Throwable  {
        // Given a new AccessEvent instance
        AccessEvent event = new AccessEvent();
        
        // When we retrieve the request headers
        Map<String, String> headers = event.getRequestHeaders();
        
        // Then the request headers should be null
        assertNull(headers);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestHeadersReturningMapWhereIsEmptyIsTrue() throws Throwable  {
        // Given: An AccessEvent object has been created with an empty HashMap of request headers.
        AccessEvent accessEvent = new AccessEvent();
        HashMap<String, String> arg0 = new HashMap<String, String>();
        accessEvent.setRequestHeaders(arg0);
        
        // When: The request headers are retrieved from the AccessEvent object.
        Map<String, String> requestHeaders = accessEvent.getRequestHeaders();
        
        // Then: The retrieved Map of request headers should be empty.
        assertTrue(requestHeaders.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetProtocolReturningNull() throws Throwable  {
        // Given an instance of AccessEvent with no protocol set
        AccessEvent event = new AccessEvent();
        
        // When getting the protocol for the event
        String protocol = event.getProtocol();
        
        // Then the method should return null
        assertNull(protocol);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLocalPortReturningPositive() throws Throwable  {
        // Given: An AccessEvent object with a local port set to 1024.
        AccessEvent event = new AccessEvent();
        event.setLocalPort(1024);
        
        // When: The getLocalPort method is called on the AccessEvent object.
        int localPort = event.getLocalPort();
        
        // Then: The returned value should be equal to the set value (1024).
        assertEquals(1024, localPort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetServerNameReturningNull() throws Throwable  {
        // Given: An AccessEvent object with a null server name
        AccessEvent accessEvent = new AccessEvent();
        assertNull(accessEvent.getServerName());
        
        // When: The server name is retrieved from the event
        String serverName = accessEvent.getServerName();
        
        // Then: The server name should be null
        assertNull(serverName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestParametersReturningMapWhereIsEmptyIsTrue() throws Throwable  {
        // Given: an AccessEvent instance with empty request parameters
        AccessEvent accessEvent = new AccessEvent();
        HashMap<String, String[]> arg0 = new HashMap<String, String[]>();
        accessEvent.setRequestParameters(arg0);
        
        // When: the request parameters are retrieved from the event
        Map<String, String[]> requestParameters = accessEvent.getRequestParameters();
        
        // Then: the resulting map should be empty
        assertTrue(requestParameters.isEmpty());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestURLReturningNonEmptyString() throws Throwable  {
        // Given: The AccessEvent class is used to represent a single web access event.
        // When: A new AccessEvent object is created with the request URL "/api/v1/users?page=1&size=50".
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRequestURL("/api/v1/users?page=1&size=50");
        
        // Then: The request URL is properly set and can be retrieved from the AccessEvent object.
        String requestURL = accessEvent.getRequestURL();
        assertEquals("/api/v1/users?page=1&size=50", requestURL);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetLocalPortReturningZero() throws Throwable  {
        // Given a new AccessEvent object
        AccessEvent accessEvent = new AccessEvent();
        
        // When the getLocalPort method is called on the event
        int localPort = accessEvent.getLocalPort();
        
        // Then the local port should be 0
        assertEquals(0, localPort);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRequestParametersReturningNull() throws Throwable  {
        // Given: A new AccessEvent is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The getRequestParameters method is called on the event
        Map<String, String[]> requestParameters = accessEvent.getRequestParameters();
        
        // Then: The return value should be null
        assertNull(requestParameters);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteHostReturningNonEmptyString() throws Throwable  {
        // Given a new AccessEvent object with a set remote host value
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setRemoteHost("127.0.0.1");
        
        // When the getRemoteHost method is called
        String remoteHost = accessEvent.getRemoteHost();
        
        // Then the correct remote host value should be returned
        assertEquals("127.0.0.1", remoteHost);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testToString() throws Throwable  {
        // Given: We have an instance of AccessEvent with default values
        AccessEvent accessEvent = new AccessEvent();
        
        // When: We call the toString() method on the instance
        String string = accessEvent.toString();
        
        // Then: The output should be a string representation of the event, including the logger context and timestamp
        assertEquals("AccessEvent[loggerContext=null, timeStamp=null]", string);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetRemoteUserReturningNull() throws Throwable  {
        // Given: An AccessEvent object is created
        AccessEvent accessEvent = new AccessEvent();
        
        // When: The getRemoteUser method of the AccessEvent object is called
        String remoteUser = accessEvent.getRemoteUser();
        
        // Then: The value returned should be null
        assertNull(remoteUser);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testGetStatusCodeReturningPositive() throws Throwable  {
        // Given: An AccessEvent with a status code of 403
        AccessEvent accessEvent = new AccessEvent();
        accessEvent.setStatusCode(403);
        
        // When: The status code is retrieved from the event
        int statusCode = accessEvent.getStatusCode();
        
        // Then: The status code should be 403
        assertEquals(403, statusCode);
    }
  }
  