Как мне использовать файл messages для создания собственного messagesApi

#playframework-2.6

#playframework-2.6

Вопрос:

В моем приложении play framework есть файл messages, который я могу использовать для определения своих собственных сообщений. Например

 ##############Application Error messages

error.incorrectBodyType=Incorrect body type. Body type must be JSON
error.incorrectBodyContentInLoginRequest=No Login info found in the request. Check format
error.incorrectUsernameOrPassword = Incorrect username or password
error.unregisteredUser = registration not complete
error.ghostUsername = No record found for the username
error.unauthenticated = You must first sign in
error.unauthorized = You are not permitted

####### Application Success Messages
success.signoutSuccessful = Signout Successful
  

Фреймворки play делают эти сообщения доступными для меня Controller , и я могу использовать их как messagesApi("error.unauthenticated")(langs.availables(0)) .

Я не могу понять, как я могу использовать messages файл в своих модульных тестах. Я использую внедрение во время компиляции и создаю свои собственные экземпляры требуемых классов. Для создания MessagesApi существует DefaultMessagesApi метод, но он принимает a map , а не a File .

Я могу создавать сообщения в своих модульных тестах следующим образом, но мне приходится дублировать усилия по копированию сообщений из messages файла в это map

 val messagesApi = new DefaultMessagesApi( //takes map of maps. the first is the language file, the 2nd is the map between message title and description
    Map("en" -> //the language file
      Map("error.incorrectBodyType" -> "Incorrect body type. Body type must be JSON",
        "error.incorrectUsernameOrPassword"->"Incorrect username or password",
        "error.incorrectBodyContentInLoginRequest"->"No Login info found in the request. Check format", //map between message title and description
        "error.unregisteredUser" -> "registration not complete",
        "error.ghostUsername" -> "No record found for the username",
        "success.signoutSuccessful" -> "Signout Successful",
        "error.unauthenticated" -> "You must first sign in",
        "error.unauthorized" -> "You are not permitted")

    )
  )
  

Есть ли способ, которым я могу прочитать messages файл и использовать его в моем тестовом примере?

Ответ №1:

Мой тестовый пример уже расширен OneAppPerSuiteWithComponents . Я использовал components.messagesApi OneAppPerSuiteWithComponents тот, который уже был доступен и считывается из messages файла