One of the major current trends of Iroha development is modularization and decoupling. Though there are some base concepts that will persist, such as the data model. Iroha has a set of commands and queries that are extensively covered by tests. But as we approached the data model decoupling, we found these tests unnecessarily too tightly bound to existing code, rather than only using proper interfaces.
We have already created a replacement test framework and reworked several commands and queries tests with it. But there is more to do in this direction. So, in this project, the mentee will have complete and functional examples of the work that needs to be done, and guidance from mentor about the architecture and rationale of the changes.
Commands and queries of Iroha: https://iroha.readthedocs.io/en/master/develop/api.html
A guide to Google Test that explains many useful things to keep in mind while implementing tests: https://github.com/google/googletest/blob/master/googletest/docs/primer.md
Test design: reasonable scope, accurate assumptions and expectations, following apparent examples of our previous test design flaws.
Google test framework experience.
The outcome of the project is a reworked set of data model tests that is decoupled from current implementation and will provide us a great help in having pluggable data model modules.
Relation to Hyperledger
Any, see skills.
Experience in writing tests great plus.
In our tests we heavily use Google Test framework, but it is easy to start working with having lots of examples.
Modular data model in Iroha.
Preferred Hours and Length of Internship
Full time preferred, but part time also possible.
Mentor(s) Names and Contact Info
Mikhail Boldyrev (email@example.com, Telegram: mboldyrev).
Mentee Name and Contact Info
Ashutosh Tiwari (firstname.lastname@example.org, Telegram: ashttxx)
A detailed project plan can be found here.