Closed mhdirkse closed 4 years ago
by dirkse
by dirkse
by dirkse
by dirkse
by dirkse
by dirkse
by dirkse
by dirkse
This story tests the design. By implementing this story it becomes clear whether the modules can interact as planned, and whether the design really supports testing.
This issue includes requirements AX-10 - AX-80, AX-110 - AX-130, AX-3000 to AX-3020, and the bootstrapping functionality of AX-4700 - AX-4730. The requirements about the user interface of the Client and the Major tool should be taken into account. The Portal tool is not started yet with this issue. Documents are left out entirely at this stage.
Today I started implementing this issue. I am giving priority to setting up the over-all architecture, while postponing detailed unit tests and making nice code.
When I can read and write some data to the blockchain, I want to focus on the details. I see a lot of repetitive code coming, so I will first refactor the code to reduce repetition. In GoLang the way to go is generating code. Then I want to unit-test the simplified code.
I change my plan. Yesterday I got a lot of ideas to improve the code I wrote. I first want to make this code as good as I can.
My first goal is now to have a transaction processor and the controller module of my design. I can test it with unit tests and a test client that sends hard-coded transactions.
Today I was refactoring my code.
Some code is now generated, which will simplify unit testing.
I defined new interfaces to the blockchain for my controller module. This makes the controller less bloated with irrelevant error checking. I am still reworking my controller code to the new interfaces.
NEXT STEPS:
Finish refactoring and finish writing the first version of the code for this issue.
Make unit tests.
Do integration test.
The first bullet is done. I can continue to unit tests and integration tests.
I completed unit testing "io.go". This part of the controller module provides classes that act as proxies to Hyperledger Sawtooth.
Using that logic, I can produce transaction payloads and execute them. I have my first working integration test.
I have made progress with writing unit tests. I am done covering bootstrap and settings changes. I am also done with the creation of persons. This means that the client side and the server side do these things as expected. Both handling valid inputs and reporting the right errors for invalid inputs is done. I have good code coverage
Now I am working on updating personal information. I have a few successful happy-path tests (tests with valid inputs). I still need some more happy-path tests and I need to start with unhappy tests.
The three bullets mentioned a few comments ago are done. This means I am done with the controller package as far as it concerns this issue.
I will continue with the Client and the Major Tool.
Tuesday April 16 I talked to Marcel. I need a new software design. When I have that, I can start programming again.
[AX-14] created by mdi