Price: $" + bookInStore.getPrice() + "
" + + newLine + + "Discounted Price: $" + bookInStore.getDiscountPrice() + "
" + + newLine + + "Status: " + + (bookInStore.isInStock() ? "In Stock" : "Out of Stock") + + "
" + + newLine + + "Price: $15.0
")); + assertTrue(htmlOutput.contains("Discounted Price: $12.0
")); + assertTrue(htmlOutput.contains("Status: In Stock
")); + } + + @Test + public void testPresentOutOfStock() { + BookStore bookOutOfStock = new BookStore("Wonder Woman Vol. 1", 15.00, 12.00, false); + String htmlOutput = Presentation.presentBook(bookOutOfStock); + + assertNotNull(htmlOutput); + assertTrue(htmlOutput.contains("Price: $15.0
")); + assertTrue(htmlOutput.contains("Discounted Price: $12.0
")); + assertTrue(htmlOutput.contains("Status: Out of Stock
")); + } + + @Test + public void testMain() { + // Redirect System.out to capture logger output + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + PrintStream printStream = new PrintStream(outputStream); + Logger.getLogger("").addHandler(new java.util.logging.ConsoleHandler() { + { + setOutputStream(printStream); + } + }); + + // Run the main method + App.main(new String[]{}); + + // Check output contains expected HTML + String loggedOutput = outputStream.toString(); + assertTrue(loggedOutput.contains("Price: $11.6
")); + assertTrue(loggedOutput.contains("Discounted Price: $8.7
")); + assertTrue(loggedOutput.contains("Status: In Stock
")); + } +} diff --git a/update-header.sh b/update-header.sh index 48da4dcd6125..568d00d52a03 100755 --- a/update-header.sh +++ b/update-header.sh @@ -1,4 +1,29 @@ #!/bin/bash +# +# This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt). +# +# The MIT License +# Copyright © 2014-2022 Ilkka Seppälä +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + # Find all README.md files in subdirectories one level deep # and replace "### " with "## " at the beginning of lines