public String getTopicName(AsyncMockDefinition definition, EventMessage eventMessage) {
      logger.debugf("AsyncAPI Operation {%s}", definition.getOperation().getName());

      // Produce service name part of topic name.
      String serviceName = definition.getOwnerService().getName().replace(" ", "");
      serviceName = serviceName.replace("-", "");

      // Produce version name part of topic name.
      String versionName = definition.getOwnerService().getVersion().replace(" ", "");
      versionName = versionName.replace(".", "");

      // Produce operation name part of topic name.
      String operationName = ProducerManager.getDestinationOperationPart(definition.getOperation(), eventMessage);

      // Aggregate the 3 parts using '-' as delimiter.
      return serviceName + "-" + versionName + "-" + operationName.replace("/", "-");
   }
@Test
   void testGetTopicName() {
      AmazonSNSProducerManager producerManager = new AmazonSNSProducerManager();

      Service service = new Service();
      service.setName("Streetlights API");
      service.setVersion("0.1.0");

      Operation operation = new Operation();
      operation.setName("RECEIVE receiveLightMeasurement");
      operation.setMethod("RECEIVE");
      operation.setResourcePaths(Set.of("smartylighting.streetlights.1.0.event.lighting.measured"));
      service.addOperation(operation);

      EventMessage eventMessage = new EventMessage();
      eventMessage.setName("Sample");
      List<EventMessage> eventsMessages = List.of(eventMessage);

      AsyncMockDefinition definition = new AsyncMockDefinition(service, operation, eventsMessages);

      String queueName = producerManager.getTopicName(definition, eventMessage);
      assertEquals("StreetlightsAPI-010-receiveLightMeasurement", queueName);
   }