title: MessageSource not being read properly during testing
body: <p>I already checked with most similar questions and could not find a helpful answer. </p>
  
  <p>I am making a WebApplication via JHipster using Maven v3.3.9. Among other things, there is a PDF-generation that takes place. The web app is multilingual and uses the </p>
  
  <p>/resources/i18n/..</p>
  
  <p>resource files for the different translation. On live testing everything works perfectly with no problems or errors. </p>
  
  <p>I am now trying to create a test which will generate a PDF and compare it to an existing PDF so development can continue. The problem is, no matter which locale I use for testing, I get the same error:</p>
  
  <p><a href="https://i.stack.imgur.com/saf4Y.png" rel="noreferrer"><img src="https://i.stack.imgur.com/saf4Y.png" alt="org.springframeworkcontext.NoSuchMessageException: No message found under code &#39;pdf.klasse&#39; for locale &#39;de&#39;"></a></p>
  
  <p>I am not sure what the cause of the error is. Since the messages are there and during live testing they work perfectly. </p>
  
  <p>Here is the test code:</p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @SpringBootTest(classes = DeviceDataCheckApp.class)
  public class PDFGeneratorTest
  {
  private MockMvc mockMvc;
  
  private CalculationMapperImpl calculationMapperImpl;
  
  private Calculation calculation;
  private CalculationDTO calculationDTO;
  private CalculationResult calculationResult;
  private String langval = "de";
  private String name = "";
  
  private PDFGenerator pdfGenerator;
  
  @Autowired
  private MessageSource messageSource;
  
  @Autowired
  private WebApplicationContext webApplicationContext;
  
  @Before
  public void setup() throws IOException, URISyntaxException, IllegalAccessException, InstantiationException
  {
      mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
  
      calculation = new Calculation()
              .producerName("test")
              .airVolumeSupply(2.0)
              .airVolumeExhaust(2.0)
              .statedAirVelocitySupply(2.0)
              .statedAirVelocityExhaust(2.0)
              .staticPressureLossSupply(2.0)
              .staticPressureLossExhaust(2.0)
              .pMSupply(2.0)
              .pMExhaust(2.0)
              .pMAnfSupply(2.0)
              .pMAnfExhaust(2.0)
              .pressureLossWrgSupply(2.0)
              .pressureLossWrgExhaust(2.0)
              .pressureLossMediumSupply(2.0)
              .pressureLossMediumExhaust(2.0)
              .enginePowerRotor(0.0)
              .dryThermalPerformance(0.0)
              .ofHeatRecovery(2.0)
              .wrgType(WrgType.PLATTENTAUSCHER)
              .earlyPressureLossFilterSupply(2.0)
              .earlyPressureLossFilterExhaust(2.0)
              .dimensioningPressureLossFilterSupply(2.0)
              .dimensioningPressureLossFilterExchaust(2.0)
              .referenceConfigurationFilterSupply(false)
              .referenceConfigurationFilterExhaust(false)
              .additionalFilterStageSupply(false)
              .additionalFilterStageExhaust(false)
              .hepaFilterSupply(false)
              .hepaFilterExhaust(false)
              .gasFilterSupply(false)
              .gasFilterExhaust(false)
              .highPerformanceCondenserSupply(false)
              .highPerformanceCondenserExhaust(false)
              .heightInnerDimensionSupply(2.0)
              .heightInnerDimensionExhaust(2.0)
              .depthInnerDimensionSupply(2.0)
              .depthInnerDimensionExhaust(2.0);
  
      calculationMapperImpl = new CalculationMapperImpl();
      calculationDTO = calculationMapperImpl.calculationToCalculationDTO(calculation);
  
      calculationResult = new CalculationResult();
      calculationResult.setRealAreaSA(0.00);
      calculationResult.setRealAreaEA(0.00);
      calculationResult.setRealAirVelocitySA(138.89);
      calculationResult.setRealAirVelocityEA(138.89);
      calculationResult.setCheckedVClassSA("V9");
      calculationResult.setCheckedVClassEA("V9");
      calculationResult.setDeclaredVClassSA("V4");
      calculationResult.setDeclaredVClassEA("V4");
  
      calculationResult.setpMRefSA(0.00);
      calculationResult.setpMRefEA(0.00);
      calculationResult.setpMMaxSA(0.00);
      calculationResult.setpMMaxEA(0.00);
      calculationResult.setpClassSA("-");
      calculationResult.setpClassEA("-");
  
      calculationResult.setPressureLossWrg(4);
      calculationResult.setPressureLossMedium(0);
      calculationResult.setRatedAirVolume(2);
      calculationResult.setDryThermalPower(0.00);
      calculationResult.setAuxiliaryPower(0.00);
      calculationResult.setElectricalPowerInput(0.00);
      calculationResult.setPerformanceReferenceNumber(72.29);
      calculationResult.setEfficiency(1.97);
      calculationResult.sethClass("H6");
  
      calculationResult.setpSfpVSA(3600000.00);
      calculationResult.setpSfpVEA(3600000.00);
      calculationResult.setExtraPSfpSA(0);
      calculationResult.setExtraPSfpEA(0);
      calculationResult.setSfpVClassSA("SFP7");
      calculationResult.setSfpVClassEA("SFP7");
  
      calculationResult.setSystemEfficiencySA(0.00);
      calculationResult.setSystemEfficiencyEA(0.00);
  
      calculationResult.setInternalPressureLossSA(2);
      calculationResult.setInternalPressureLossEA(2);
      calculationResult.setInternalPressureLossTotal(4);
      calculationResult.setSfpIntSA(3600000);
      calculationResult.setSfpIntEA(3600000);
      calculationResult.setSfpIntTotal(7200000);
  
      calculationResult.seteBonus2016(0);
      calculationResult.seteBonus2018(0);
      calculationResult.setfCorrection2016(360);
      calculationResult.setfCorrection2018(340);
      calculationResult.setSfpMax2016(840);
      calculationResult.setSfpMax2018(760);
      calculationResult.setAchieved2016(false);
      calculationResult.setAchieved2018(false);
  
  
  
      pdfGenerator = new PDFGenerator(calculationDTO, calculationResult, langval, messageSource, name);
  }
  
  @Test
  public void compareFilesTest() throws IOException
  {
      System.out.println(calculation);
  
      File f1 = new File("../PDFData/testPDF.pdf");
      File f2 = new File("../PDFData/testPDF2.pdf");
  
      boolean areSame = FileUtils.contentEquals(f1, f2);
      System.out.println("Files were compared...");
      assertTrue(areSame);
  
  }
  
  
  }
  </code></pre>
  
  <p>The PDFGenerator creates the testPDF2.pdf file and saves it. </p>
  
  <p><strong>UPDATE</strong>
  Adding the:</p>
  
  <pre><code>@PropertySource("classpath:/src/main/resources/i18n/messages_de.properties")
  </code></pre>
  
  <p>to the config did not do much. I also changed the locale from </p>
  
  <pre><code>String locale = "de"
  </code></pre>
  
  <p>to </p>
  
  <pre><code>Locale locale = Locale.GERMAN;
  </code></pre>
  
  <p>and I threw in the line: </p>
  
  <pre><code>System.out.println(messageSource.getMessage("pdf.klasse", null, this.locale));
  </code></pre>
  
  <p>directly at the beginning of the test. I get the same error. It seems the problem is not in finding the file but in reading it. </p>