Change Log Report

Total number of changed sets: 1

Changes between 2023-11-22 and 2023-12-23

Total commits: 25
Total number of files changed: 49

Timestamp Author Details
2023-12-22 11:59:18 Jegors Čemisovs <jegors_cemisovs@epam.com> .github/workflows/publish.yaml v 755edefe7d2c40923fd44783b211fc92104b76da
diffblue-cover/diffblue-legal-age-web/src/bank.yaml v 755edefe7d2c40923fd44783b211fc92104b76da
diffblue-cover/diffblue-legal-age-web/src/rest/http-client.env.json v 755edefe7d2c40923fd44783b211fc92104b76da
diffblue-cover/diffblue-legal-age-web/src/rest/legal-age-test.http v 755edefe7d2c40923fd44783b211fc92104b76da

Add OpenAPI definition for Bank API

@coderabbitai ignore
2023-12-07 22:29:55 Jegors Čemisovs <jegors_cemisovs@epam.com> .github/workflows/publish.yaml v 2e58c26537a9b626848929dcf7c344c371ffd7cd

Update GitHub workflow for site publishing

Optimized the GitHub Actions workflow for better site publishing. The workflow is updated from a simple 'hello print' placeholder to a complete process for building and publishing the site. It now includes steps for getting the Java version from pom.xml and setting up the JDK accordingly. This change will ensure the site is built and published with the correct Java version.

@coderabbitai ignore
2023-12-07 22:08:02 Jegors Čemisovs <jegors_cemisovs@epam.com> .github/workflows/publish.yaml v 84be91c1cb8ab2088eebe104025a324a424f2393
epam-ai-dial/epam-ai-roman/src/test/groovy/epam/roman/RomanToArabicConverterSpec.groovy v 84be91c1cb8ab2088eebe104025a324a424f2393
qodana.yaml v 84be91c1cb8ab2088eebe104025a324a424f2393

Add Qodana configuration, modify test package and add GitHub Action

This commit introduces Qodana static code analysis by adding a qodana.yaml file. Qodana is expected to facilitate better code quality management. Also, a small adjustment was made to the package declaration of the RomanToArabicConverterSpec.groovy test file – removing the semicolon for consistency. Lastly, a new GitHub Action (publish.yaml in .github/workflows) was added, aimed at automating the website publication process.
2023-12-05 16:11:09 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-flipflop/src/test/groovy/epam/flipflop/FlipFlopPredicateAiSpec.groovy v 42c31319f6178f8820a68671fd012839cb3a0f48

Update FlipFlopPredicate test to use Object

The FlipFlopPredicate test in FlipFlopPredicateAiSpec.groovy was updated to utilize Object instead of Boolean. This modification allows a more diverse range of inputs for testing. The test method has been updated to reflect this change. Additionally, an 'and' clause was added in the 'given' section to improve readability.
2023-12-04 12:59:29 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/docs/epam-ai-legal-age-predicate.md v eeac2f8e561ad244f4b5203b230730f8a16ceb5c
epam-ai-dial/docs/spock-framework.md v eeac2f8e561ad244f4b5203b230730f8a16ceb5c

Add guidelines for Spock framework, revise epam-ai-legal-age-predicate document

This commit includes the addition of a new document detailing the rules and guidelines for using the Spock framework for Java and Groovy developers in AI dialogue. The purpose of the change is to improve the test coverage and ensure consistency across the development.

In addition, an unnecessary line in the 'epam-ai-legal-age-predicate' document was removed for overall content cleanliness.
2023-12-03 23:01:49 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue-cover/diffblue-legal-age-web/pom.xml v e8be8d923f0406783f95bfeec81b9b565791a97a

Add metadata to the POM file.

POM file for the Legal Age Web Application was missing important metadata. Name, description and URL of the application have been added to improve documentation and clarity. These changes provide more context about the application and guide the user on its usage.

@coderabbitai ignore
2023-12-03 22:58:35 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue-cover/diffblue-legal-age-web/pom.xml v 6d35e8adf6005e7bc140769becb86938bdf2d9e1
diffblue-cover/diffblue-legal-age-web/src/main/java/diffblue/age/web/AgeApp.java v 6d35e8adf6005e7bc140769becb86938bdf2d9e1
diffblue-cover/diffblue-legal-age-web/src/main/java/diffblue/age/web/AgeResource.java v 6d35e8adf6005e7bc140769becb86938bdf2d9e1
diffblue-cover/diffblue-legal-age-web/src/rest/legal-age-test.http v 6d35e8adf6005e7bc140769becb86938bdf2d9e1
diffblue-cover/pom.xml v 6d35e8adf6005e7bc140769becb86938bdf2d9e1
pom.xml v 6d35e8adf6005e7bc140769becb86938bdf2d9e1

Add web-service for legal age check & refactor POM structure

A new web-service, diffblue-legal-age-web, was added to provide an HTTP API for legal age checking purposes. Additionally, the main POM file was refactored for better organization. Java version was downgraded from 21 to 17 for backward compatibility. New dependencies have been added for testing and reporting purposes. Restlet was chosen for the web-service framework due to its lightweight implementation and ease of use.

@coderabbitai ignore
2023-12-03 20:57:26 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-flipflop/src/main/java/epam/flipflop/FlipFlopPredicate.java v ec0a974ee3eef20b00d77aea533b29350988c418
epam-ai-dial/epam-ai-flipflop/src/test/groovy/epam/flipflop/FlipFlopPredicateAiSpec.groovy v ec0a974ee3eef20b00d77aea533b29350988c418
epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v ec0a974ee3eef20b00d77aea533b29350988c418

Revamp FlipFlopPredicate and adjust test files

Refactored FlipFlopPredicate class for clarity and efficiency. Introduced NPE checks for input predicates. Renamed variables for better understanding of their purposes. Streamlined test method in FlipFlopPredicateAiSpec. Minor text adjustment in LegalAgePredicateSpec.

The changes are made to improve readability, maintainability and to ensure safety from NullPointerExceptions by requiring non-null values for input predicates.
2023-12-03 20:21:57 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-roman/src/main/java/epam/roman/RomanToArabicConverter.java v 387bf40e0a33b320e669c0af95c823e558579337
epam-ai-dial/epam-ai-roman/src/test/groovy/epam/roman/RomanToArabicConverterSpec.groovy v 387bf40e0a33b320e669c0af95c823e558579337
epam-ai-dial/epam-ai-roman/src/test/java/epam/roman/RomanToArabicConverterAiTest.java v 387bf40e0a33b320e669c0af95c823e558579337

Add Roman to Arabic numeral converter and tests

Adding a new utility, RomanToArabicConverter, to convert Roman numerals to their Arabic counterparts. This functionality is necessary to support features that rely on Roman numeral inputs. The implementation uses a HashMap to map the numerals and converts the input string from right to left.

Tests for this conversion method have also been added, ensuring all typical cases (minimum value, subtraction cases, maximum value) are correctly handled. Tests are executed with both Groovy and JUnit, increasing testing reliability and coverage.
2023-12-03 20:10:59 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/docs/epam-ai-flipflop-predicate.md v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/docs/epam-ai-legal-age-predicate.md v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/docs/tdd-junit5-assertj.txt v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/src/main/java/epam/flipflop/FlipFlopPredicate.java v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/src/test/java/epam/flipflop/FlipFlopPredicateAiTest.java v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-roman/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811
pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811

Update FlipFlopPredicate and LegalAgePredicate

Extended FlipFlopPredicate tests and functionality to meet the modified specification where it returns true while the state has been changed from active to inactive on the input satisfying the end condition.

Added tests and implementation for LegalAgePredicate which determines if a person of a given birthdate has reached legal age. Implementation and tests are provided with two Predicate constructors allowing to use different Clock for date mocking in tests.

Added a detailed dialogue transcript explaining the reason behind all decisions and clarifications asked during the task implementation.
2023-12-03 18:38:16 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v 2cba7964441969e0704d72dedd9a0d0f3c43bd45
epam-ai-dial/epam-ai-legal-age/src/test/java/epam/legalage/LegalAgePredicateAiTest.java v 2cba7964441969e0704d72dedd9a0d0f3c43bd45
epam-ai-dial/pom.xml v 2cba7964441969e0704d72dedd9a0d0f3c43bd45

Updated legal age test cases & added Spock dependency

Added JUnit5 and Spock Framework dependencies in pom.xml to facilitate additional testing scenarios. Created a new Groovy file, LegalAgePredicateSpec.groovy, for testing with Spock Framework which allows more comprehensive testing scenarios in a clear, readable form.
2023-12-03 17:56:16 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-legal-age/pom.xml v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/epam-ai-legal-age/src/main/java/epam/legalage/LegalAgePredicate.java v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/epam-ai-legal-age/src/test/java/epam/legalage/LegalAgePredicateAiTest.java v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/pom.xml v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
pom.xml v 62155f6a55fc3dbc565ad15ac0fb671bec24085b

New module epam-ai-legal-age has been added to the project. This module introduced a LegalAgePredicate class for checking whether a user is over 18 years old based on their date of birth. This logic is tested in LegalAgePredicateAiTest. These changes are essential for ensuring the software does not provide services to underage users, complying with international laws regarding the provision of certain digital services. Furthermore, the parent pom.xml and epam-ai-dial/pom.xml were updated to include new dependencies and modules required for these changes.
2023-12-03 15:54:13 Jegors Čemisovs <jegors_cemisovs@epam.com> github-copilot/copilot-roman/src/main/java/copilot/roman/RomanToArabicConverter.java v 6747d45783f6b2b63b903ceb74105b2f0bf4e0bc
github-copilot/copilot-roman/src/test/groovy/copilot/roman/RomanToArabicConverterTest.groovy v 6747d45783f6b2b63b903ceb74105b2f0bf4e0bc

Implement Roman to Arabic number conversion

Replaced thrown UnsupportedOperationException in RomanToArabicConverter.java with a functional method that converts Roman numerals to Arabic numbers. The logic switches based on the passed Roman symbols and calculates the proper Arabic numbers based on the Roman numeral rules. Removed @PendingFeature annotation in the test file as this feature is no longer pending.
2023-12-03 15:11:51 Jegors Čemisovs <jegors_cemisovs@epam.com> github-copilot/copilot-roman/src/test/groovy/copilot/roman/RomanToArabicConverterTest.groovy v 43d89a92448ec6939617f791022bb504596a19d3

Remove pending test for invalid Roman numerals

This commit removes a pending test case from the RomanToArabicConverterTest.groovy file. The test case was initially designed to handle invalid Roman numerals. However, upon further consideration, it was concluded that this validation should be handled at a higher level, and not within the converter functionality. Hence, this 'result is undefined for invalid Roman numerals' test case is no longer needed in this module.
2023-12-03 14:39:07 Jegors Čemisovs <jegors_cemisovs@epam.com> github-copilot/copilot-roman/src/main/java/copilot/roman/RomanToArabicConverter.java v af33766fb6a2ee37c9d1dd1bce64b1e3c8ce30a1
github-copilot/copilot-roman/src/test/groovy/copilot/roman/RomanToArabicConverterTest.groovy v af33766fb6a2ee37c9d1dd1bce64b1e3c8ce30a1

Add RomanToArabicConverter and corresponding tests

Added RomanToArabicConverter class and its corresponding test class. The converter class is set to throw UnsupportedOperationException until it is implemented. The test class tests for the conversion of a wide range of roman numerals to their respective arabic numbers as well as checking that the converter responds appropriately to invalid roman numerals.
2023-12-03 13:20:30 Jegors Čemisovs <jegors_cemisovs@epam.com> README.md v 5d41f493a8e33363078706825f558a376a5876b0
diffblue-cover/diffblue-roman/pom.xml v 5d41f493a8e33363078706825f558a376a5876b0
diffblue-cover/pom.xml v 5d41f493a8e33363078706825f558a376a5876b0
epam-ai-dial/pom.xml v 5d41f493a8e33363078706825f558a376a5876b0
github-copilot/copilot-roman/pom.xml v 5d41f493a8e33363078706825f558a376a5876b0
pom.xml v 5d41f493a8e33363078706825f558a376a5876b0

Update Maven configurations and add README

Updated the Maven POM files to include more accurate project descriptions, better security checks, and improved report plugins. README.md was added, providing an overview of this project. Changes made to maven configurations include:

- `pom.xml`: Incorporating OWASP dependency-check plugin for better security; also rearranged the reporting plugins sections.
- `diffblue-cover`, `github-copilot`, and `diffblue-roman` pom files: Corrected the project description and URL for a clearer understanding of the application.
- `epam-ai-dial` pom file: Removed the extra line.

These updates provide better project clarity and enhance the security levels of our code base.

@coderabbitai ignore
2023-12-02 22:20:51 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue-cover/diffblue-legal-age/pom.xml v e191a02e216b8f2d842e004361c0bcbd8b718a8c
diffblue-cover/diffblue-legal-age/src/main/java/diffblue/legalage/LegalAgePredicate.java v e191a02e216b8f2d842e004361c0bcbd8b718a8c
diffblue-cover/diffblue-legal-age/src/test/java/diffblue/legalage/LegalAgePredicateDiffblueTest.java v e191a02e216b8f2d842e004361c0bcbd8b718a8c
diffblue-cover/pom.xml v e191a02e216b8f2d842e004361c0bcbd8b718a8c

Add legal age module with its predicate implementation and tests

This commit includes the creation of a new module 'diffblue-legal-age' in the main pom.xml file. A new class `LegalAgePredicate`, implementing the Predicate interface, was added to calculate if given birthdate pertains to legal age or not. A new 'pom.xml' file was added for the module and a test class 'LegalAgePredicateDiffblueTest' was added to include tests for the legal age predicate. This new functionality is essential for age verification in several parts of our application's logic.
2023-12-02 20:59:01 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue-cover/diffblue-flipflop/pom.xml v 23046d831aa1284d738a794840bca94b025756a8
diffblue-cover/diffblue-flipflop/src/main/java/diffblue/flipflop/FlipFlopPredicate.java v 23046d831aa1284d738a794840bca94b025756a8
diffblue-cover/diffblue-flipflop/src/test/java/diffblue/flipflop/FlipFlopPredicateDiffblueTest.java v 23046d831aa1284d738a794840bca94b025756a8
diffblue-cover/pom.xml v 23046d831aa1284d738a794840bca94b025756a8

Add FlipFlopPredicate module and upgrade Java version

Introduced a new module named 'diffblue-flipflop' to the build. This module includes the FlipFlopPredicate class and its test cases which emulate flip-flop logic similar to two-dots flip-flop in Perl or Ruby. Also updated the Java version used in the project to Java 17. Updated the Junit dependency to 'junit-jupiter', and added a new dependency 'mockito-core' for mocking in tests. The new module and dependencies have been added to enhance the project's functionality and testing capabilities.
2023-12-02 18:17:54 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue-cover/diffblue-roman/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
diffblue-cover/diffblue-roman/src/main/java/diffblue/roman/RomanToArabicConverter.java v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
diffblue-cover/diffblue-roman/src/test/java/diffblue/roman/RomanToArabicConverterDiffblueTest.java v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
diffblue-cover/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
epam-ai-dial/epam-ai-roman/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
epam-ai-dial/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
github-copilot/copilot-roman/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
github-copilot/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3

Reorganized project structure and renamed modules

Deleted files and directories related to the 'diffblue' and 'roman-to-integer' modules. These modules are part of a larger restructuring of the project. 'diffblue' and 'roman-to-integer' renamed to 'diffblue-cover' and 'diffblue-roman' respectively for better understanding of the role each module plays. The 'github-copilot' module created to introduce GitHub Copilot samples. Unit tests were also reorganised in accordance to the new hierarchy. Necessary changes in pom.xml were done to reflect the changes.

@coderabbitai ignore
2023-12-02 08:41:14 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue/pom.xml v d235ace4e155ebe4d593114bc22397c60e653b12
pom.xml v d235ace4e155ebe4d593114bc22397c60e653b12

Update pom.xml files with new details and dependencies

Updating `pom.xml` and `diffblue/pom.xml` with new developer and contributor information as well as modifying some dependencies. Jegors' email address has been updated, and a new role added. A new contributor, Alina, has been introduced. Furthermore, 'maven-site-plugin' was added to plugins. In `diffblue/pom.xml` file, a URL section was added and some dependencies were removed while junit-jupiter dependency was switched to junit-jupiter-api. This is done to keep up-to-date and precise information, and ensure dependencies align with the current needs of the project.
2023-12-02 08:13:31 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/pom.xml v 22452cb00213b139d9d5bbe74c233d7d644629f2
pom.xml v 22452cb00213b139d9d5bbe74c233d7d644629f2

Add pom.xml for new module epam-ai-dial

Added a new pom.xml file for a fresh module called epam-ai-dial. This module is needed for Autonomous Java Unit Test Writing with AI for Code. In addition to the new file, the main pom.xml was edited to include new module and add XML and HTML report formats for Jacoco maven plugin.
2023-12-01 15:19:50 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue/roman-to-integer/src/test/java/diffblue/roman/RomanToArabicConverterDiffblueTest.java v dc2f28c8898f58a2f346403422c5ddd04a21672a

Add unit test for RomanToArabicConverter

New unit test has been added in RomanToArabicConverterDiffblueTest class. This test ensures functionality of the roman to integer conversion method applyAsInt. It checks if provided roman numeral string converts to correct integer. This is essential for the validation of the accuracy of the conversion functionality.
2023-12-01 15:14:31 Jegors Čemisovs <jegors_cemisovs@epam.com> diffblue/pom.xml v 25d9b883f7df8d0350edb03771ac0ea8a97fb114
diffblue/roman-to-integer/pom.xml v 25d9b883f7df8d0350edb03771ac0ea8a97fb114
diffblue/roman-to-integer/src/main/java/diffblue/roman/RomanToArabicConverter.java v 25d9b883f7df8d0350edb03771ac0ea8a97fb114
pom.xml v 25d9b883f7df8d0350edb03771ac0ea8a97fb114

Add Roman to Arabic conversion module and update POMs

Added a new module `roman-to-integer` to the `diffblue` project for converting Roman numerals to Arabic integers. This includes a `RomanToArabicConverter` class and corresponding POM file. Additionally, updated the parent POM files to include the new module. This change is to extend the functionality of the project to cover numeral systems conversion.
2023-12-01 13:42:09 Jegors Čemisovs <jegors_cemisovs@epam.com> .github/workflows/build.yml v d1e0df612061863e9f19919c083bd8cdd8fd81b7
pom.xml v d1e0df612061863e9f19919c083bd8cdd8fd81b7

Add GitHub Actions for auto-build and update pom.xml

Added a new GitHub action to automate build and sonar analysis of the code on each push or pull request. This change improves CI/CD flow by automating repetitive tasks.

Changes in pom.xml included the addition of further project details and configurations, updating dependencies to manage unit tests and code styles. This provides up-to-date and consolidated project-related information and manages build specifics in a comprehensive manner.
2023-12-01 12:51:38 Jegors Čemisovs <jegors_cemisovs@epam.com> .editorconfig v b0150131c835083005d0270a9959c015e3d8c145
.gitignore v b0150131c835083005d0270a9959c015e3d8c145
LICENSE v b0150131c835083005d0270a9959c015e3d8c145
pom.xml v b0150131c835083005d0270a9959c015e3d8c145

Added project files and set up environment

Added LICENSE, .gitignore, pom.xml, and .editorconfig files. These are essential for the project setup. The LICENSE file clarifies the rules for the use of our software. The .gitignore allows us to specify files to be ignored by Git. The pom.xml is a configuration file for build automation. The .editorconfig helps maintain consistent coding styles.