Test Logs

Good unit tests ensure the team to reach the desired goal with strong confidence to deploy the product to public users. It is recommended to document the tests as a journal of product development, which provides the team to look back and review the design of unit tests if the product performances dramatically different.

12-08-2021

  1. Create a new version (1.0.3) for Core.Grasshopper.Common package, and the currently installed version is (1.0.2), the installed one should be successfully updated (successful)

  2. Create a new version(1.0.3) for the Core.Grasshopper.Common package that requires Astersisk as dependency package, and the currently installed version is (1.0.2), and Asterisk is installed. The installed one should be successfully updated (successful)

  3. Createa a another new version (1.0.4) for the Core.Grasshopper.Common package that does not require Asterisk but Test as dependency package, and the currently installed version is (1.0.3), and the Test package is not installed meanwhile Asterisk is installed along with its dependency packages, the installed one should be successfully updated while Asterisk should be deleted along with its package dependencies (Failed) (Fixed 12-10-2021)

Bug (Fixed 12-10-2021):

  1. Two threads running in parallel as follow:

  • Main Thread - Downloading the user selected package

  • Second Thread - The BackgroundUpdateChecker is scanning every installed package through their Package.JSON and Version.JSON files. At the one moment of time in a very rare occasion, the BackgroundUpdateChecker scans the files that is currently being downloaded, and it can find everything but the Version JSON file due to it is, at the exact moment of time, the next item to install...And that is why the error message "unable to find the version json file" pops up first and followed by a "successfully installed" message. We need to discuss and solve this issue together, come up a better plan that avoids this meanwhile maintaining the parallel threads system design (if necessary?)

12-13-2021

  1. Install 1.0.3 Grasshopper.Common package which has dependency of Aesterisk 1.0.3, and uninstall Aesterisk, nothing should be uninstalled (success)

  2. Install Aesterisk 1.0.3, and install Grasshopper.Common 1.0.3. Aesterisk and its dependencies shouldn't be uninstalled due to Aesterisk was installed first as Application package than Dependency package. (Failed, Aesterisk stayed, but its dependencies were deleted) (**Fixed **12-13-2021. Reason: In the method InstallDependencyPackageAsync, should check each DependencyPackageToInstall whether they have dependencies as well. Previously, they are not checked and assigned their dependencies, so Aesterisk's dependencies converted to null)

  3. Install Aesterisk 1.0.0, and install Grasshopper.Common 1.0.3, Grasshopper.Common should be installed, and Aesterisk version number should be updated to 1.0.3????(I'm not sure what happens at this step, need to discuss with the team). (Failed, Grasshopper.Common couldn't be installed) (Fixed12-13-2021, the method FilterOutExistedDependentPackages only checked whether the package installed or not, it did not check if the installed package has the matching version as the user wishes to install. If it is not the same version, install the user-selected version.)

  4. Install Aseterisk 1.0.3, and install Grasshopper.Common 1.0.3, finally, update(downgrade/upgrade) Aesterisk 1.0.3 to 1.0.1. This update operatin should fail as Aesterisk 1.0.1 is not required by Grasshopper.Common. An error message should be returned "This package version is not successfully installed due to the current package version is required by another package{package name}." (Failed, need to check whether the current version is required by other packages as a dependency, although it might be or might not be an Appliation package by itself)

Last updated