// Path: ocpp-common/src/main/java/eu/chargetime/ocpp/ServerEvents.java
// public interface ServerEvents {
//   default void authenticateSession(SessionInformation information, String username, byte[] password)
//       throws AuthenticationException {}
// 
//   void newSession(UUID sessionIndex, SessionInformation information);
// 
//   void lostSession(UUID sessionIndex);
// }
// 
// Path: ocpp-common/src/main/java/eu/chargetime/ocpp/model/SessionInformation.java
// public class SessionInformation {
// 
//   private String identifier;
//   private InetSocketAddress address;
//   private String SOAPtoURL;
//   private String proxiedAddress;
// 
//   public String getIdentifier() {
//     return identifier;
//   }
// 
//   public InetSocketAddress getAddress() {
//     return address;
//   }
// 
//   public String getSOAPtoURL() {
//     return SOAPtoURL;
//   }
// 
//   public String getProxiedAddress() {
//     return proxiedAddress;
//   }
// 
//   public static class Builder {
// 
//     private String identifier;
//     private InetSocketAddress address;
//     private String SOAPtoURL;
//     private String proxiedAddress;
// 
//     public Builder Identifier(String identifier) {
//       this.identifier = identifier;
//       return this;
//     }
// 
//     public Builder InternetAddress(InetSocketAddress address) {
//       this.address = address;
//       return this;
//     }
// 
//     public Builder ProxiedAddress(String proxiedAddress) {
//       this.proxiedAddress = proxiedAddress;
//       return this;
//     }
// 
//     public SessionInformation build() {
//       SessionInformation sessionInformation = new SessionInformation();
//       sessionInformation.identifier = this.identifier;
//       sessionInformation.address = this.address;
//       sessionInformation.SOAPtoURL = this.SOAPtoURL;
//       sessionInformation.proxiedAddress = this.proxiedAddress;
//       return sessionInformation;
//     }
// 
//     public Builder SOAPtoURL(String toUrl) {
//       this.SOAPtoURL = toUrl;
//       return this;
//     }
//   }
// }


import eu.chargetime.ocpp.ServerEvents;
import eu.chargetime.ocpp.model.SessionInformation;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import java.util.UUID;
package eu.chargetime.ocpp.jsonserverimplementation.config;



@TestConfiguration
@Getter
@Slf4j
public class TestServerEventConfig {

    @Bean
    public ServerEvents createServerCoreImpl() {
        return getNewServerEventsImpl();
    }

    private ServerEvents getNewServerEventsImpl() {
        return new ServerEvents() {

            @Override
// Path: ocpp-common/src/main/java/eu/chargetime/ocpp/ServerEvents.java
// public interface ServerEvents {
//   default void authenticateSession(SessionInformation information, String username, byte[] password)
//       throws AuthenticationException {}
// 
//   void newSession(UUID sessionIndex, SessionInformation information);
// 
//   void lostSession(UUID sessionIndex);
// }
// 
// Path: ocpp-common/src/main/java/eu/chargetime/ocpp/model/SessionInformation.java
// public class SessionInformation {
// 
//   private String identifier;
//   private InetSocketAddress address;
//   private String SOAPtoURL;
//   private String proxiedAddress;
// 
//   public String getIdentifier() {
//     return identifier;
//   }
// 
//   public InetSocketAddress getAddress() {
//     return address;
//   }
// 
//   public String getSOAPtoURL() {
//     return SOAPtoURL;
//   }
// 
//   public String getProxiedAddress() {
//     return proxiedAddress;
//   }
// 
//   public static class Builder {
// 
//     private String identifier;
//     private InetSocketAddress address;
//     private String SOAPtoURL;
//     private String proxiedAddress;
// 
//     public Builder Identifier(String identifier) {
//       this.identifier = identifier;
//       return this;
//     }
// 
//     public Builder InternetAddress(InetSocketAddress address) {
//       this.address = address;
//       return this;
//     }
// 
//     public Builder ProxiedAddress(String proxiedAddress) {
//       this.proxiedAddress = proxiedAddress;
//       return this;
//     }
// 
//     public SessionInformation build() {
//       SessionInformation sessionInformation = new SessionInformation();
//       sessionInformation.identifier = this.identifier;
//       sessionInformation.address = this.address;
//       sessionInformation.SOAPtoURL = this.SOAPtoURL;
//       sessionInformation.proxiedAddress = this.proxiedAddress;
//       return sessionInformation;
//     }
// 
//     public Builder SOAPtoURL(String toUrl) {
//       this.SOAPtoURL = toUrl;
//       return this;
//     }
//   }
// }


// Path: ocpp-v1_6-example/json_server_example/src/test/java/eu/chargetime/ocpp/jsonserverimplementation/config/TestServerEventConfig.java
import eu.chargetime.ocpp.ServerEvents;
import eu.chargetime.ocpp.model.SessionInformation;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import java.util.UUID;

package eu.chargetime.ocpp.jsonserverimplementation.config;



@TestConfiguration
@Getter
@Slf4j
public class TestServerEventConfig {

    @Bean
    public ServerEvents createServerCoreImpl() {
        return getNewServerEventsImpl();
    }

    private ServerEvents getNewServerEventsImpl() {
        return new ServerEvents() {

            @Override
            public void newSession(UUID sessionIndex, SessionInformation information) {