public void testGetVersion_WithMockedManifest_ReturnsValidVersion() throws IOException {
    //  Arrange.
    PowerMockito.mockStatic(VersionUtil.class);
    PowerMockito.when(VersionUtil.getVersion()).thenCallRealMethod();
    PowerMockito.when(VersionUtil.class.getPackage()).thenReturn(this.aPackage);
    PowerMockito.when(VersionUtil.class.getClassLoader()).thenReturn(this.classLoader);
    PowerMockito.when(this.classLoader.findResource(Matchers.anyString())).thenReturn(this.mockedUrl);
    InputStream stubInputStream = IOUtils.toInputStream(this.MANIFEST_CONTENT, Charset.defaultCharset());
    PowerMockito.when(this.mockedUrl.openStream()).thenReturn(stubInputStream);
    PowerMockito.when(this.aPackage.getImplementationVersion()).thenReturn("1.0.0");

    // Act.
    Version version = VersionUtil.getVersion();

    // Assert.
    Assert.assertTrue("11" == version.getBuild());
    Assert.assertEquals("1476885882", version.getBuildTime());
    Assert.assertTrue(1 == version.getMajor());
    Assert.assertTrue(2 == version.getMinor());
}

        
main