Git Product home page Git Product logo

taskmarket's People

Contributors

anish97ind avatar magwas avatar mayuresh94 avatar meenal2020 avatar pthakkar02 avatar szirbucz avatar vendra131 avatar

Watchers

 avatar  avatar  avatar

taskmarket's Issues

RegistrationController/store username

Behaviour: RegistrationController/store username

Annotations for the test cases:

@TestedBehaviour("store username")
@TestedService("RegistrationController")

The production code is at com.kodekonveyor.market.register.RegistrationController.java
The testcase base should be at com.kodekonveyor.market.register.RegistrationControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.RegistrationControllerStoreUsernameTest.java

store the authenticated username from the request
See
https://www.baeldung.com/get-user-in-spring-security
The service:

RegistrationController
RegistrationController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

RegistrationInfoDTO
RegistrationInfoDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegisterInterestController/storage

Behaviour: RegisterInterestController/storage

Annotations for the test cases:

@TestedBehaviour("storage")
@TestedService("RegisterInterestController")

The production code is at com.kodekonveyor.market.lead.RegisterInterestController.java
The testcase base should be at com.kodekonveyor.market.lead.RegisterInterestControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.RegisterInterestControllerStorageTest.java

Store and retrieve Entities through Repositories
The service:

RegisterInterestController
RegisterInterestController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

PaymentUpdateController/payment channels

Behaviour: PaymentUpdateController/payment channels

Annotations for the test cases:

@TestedBehaviour("payment channels")
@TestedService("PaymentUpdateController")

The production code is at com.kodekonveyor.market.register.PaymentUpdateController.java
The testcase base should be at com.kodekonveyor.market.register.PaymentUpdateControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.PaymentUpdateControllerPaymentChannelsTest.java

supported payment channels
The following are the names and meanings of supported payment channels:
sepa: European bank transfer. needs SWIFT and BIC
paypal: needs paypal email
transferwise: transferwise. Needs data based on the target country/bank.

The service:

PaymentUpdateController
PaymentUpdateController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

CreateProjectController/storage

Behaviour: CreateProjectController/storage

Annotations for the test cases:

@TestedBehaviour("storage")
@TestedService("CreateProjectController")

The production code is at com.kodekonveyor.market.project.CreateProjectController.java
The testcase base should be at com.kodekonveyor.market.project.CreateProjectControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.CreateProjectControllerStorageTest.java

Store and retrieve Entities through Repositories
The service:

CreateProjectController
CreateProjectController

DTOs and Entities:

ProjectEntity
ProjectEntity

ProjectDTO
ProjectDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RestResponseEntityExceptionHandler/exception handling

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.
Behaviour: RestResponseEntityExceptionHandler/exception handling

Annotations for the test cases:

@TestedBehaviour("exception handling")
@TestedService("RestResponseEntityExceptionHandler")

The production code is at com.kodekonveyor.market.RestResponseEntityExceptionHandler.java
The testcase base should be at com.kodekonveyor.market.RestResponseEntityExceptionHandlerTestBase.java
The testcase should probably be at com.kodekonveyor.market.RestResponseEntityExceptionHandlerExceptionHandlingTest.java

All exceptions explicitly thrown are converter to appropriate error messages.

The service:

RestResponseEntityExceptionHandler
RestResponseEntityExceptionHandler

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ShowUserController/Show Her Data

Behaviour: ShowUserController/Show Her Data

Annotations for the test cases:

@TestedBehaviour("Show Her Data")
@TestedService("ShowUserController")

The production code is at com.kodekonveyor.market.register.ShowUserController.java
The testcase base should be at com.kodekonveyor.market.register.ShowUserControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.ShowUserControllerShowHerDataTest.java

The user is entitled to see all the data we are storing about her.
If no reference to a user, then we are talking about the currently logged in user

The service:

ShowUserController
ShowUserController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ListTasksController/List user's tasks

Behaviour: ListTasksController/List user's tasks

Annotations for the test cases:

@TestedBehaviour("List user's tasks")
@TestedService("ListTasksController")

The production code is at com.kodekonveyor.market.tasks.ListTasksController.java
The testcase base should be at com.kodekonveyor.market.tasks.ListTasksControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.ListTasksControllerListUser'sTasksTest.java

The tasks should be listed for a user in the following order:

  • IN_PROGRESS tasks where the user is responsible
  • UP_FOR_GRAB tasks for closed projects the user is a member of
  • UP_FOR_GRAB tasks for open projects
  • CLOSED tasks where the user is responsible

The service:

ListTasksController
ListTasksController

DTOs and Entities:

MarketUserEntity
MarketUserEntity

ProjectEntity
ProjectEntity

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

LoggerService/Logging

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.
Behaviour: LoggerService/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("LoggerService")

The production code is at com.kodekonveyor.market.LoggerService.java
The testcase base should be at com.kodekonveyor.market.LoggerServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.LoggerServiceLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged at start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

LoggerService
LoggerService

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

NotLoggedInException/authentication infrastructure

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.
Behaviour: NotLoggedInException/authentication infrastructure

Annotations for the test cases:

@TestedBehaviour("authentication infrastructure")
@TestedService("NotLoggedInException")

The production code is at com.kodekonveyor.authentication.NotLoggedInException.java
The testcase base should be at com.kodekonveyor.authentication.NotLoggedInExceptionTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.NotLoggedInExceptionAuthenticationInfrastructureTest.java

RemoteAuthenticationFilter is a authentication filter implementation to retrieve the auth0 authenticated user from apache

NotLoggedInException is an exception signalling unauthenticated condition

RemoteAuthentication is an Authentication implementation

The service:

authentication
authentication

DTOs and Entities:

UserEntity
UserEntity

Role
Role

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ObtainOauth2TokenService/oauth2

Behaviour: ObtainOauth2TokenService/oauth2

Annotations for the test cases:

@TestedBehaviour("oauth2")
@TestedService("ObtainOauth2TokenService")

The production code is at com.kodekonveyor.authentication.ObtainOauth2TokenService.java
The testcase base should be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceOauth2Test.java

github resources are obtained with the oauth2 token of user
The service:

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

CreateProjectController/compile output

Behaviour: CreateProjectController/compile output

Annotations for the test cases:

@TestedBehaviour("compile output")
@TestedService("CreateProjectController")

The production code is at com.kodekonveyor.market.project.CreateProjectController.java
The testcase base should be at com.kodekonveyor.market.project.CreateProjectControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.CreateProjectControllerCompileOutputTest.java

The results are returned in a newly created DTO.

All the relevant fields of the returned DTO are filled out properly.

The service:

CreateProjectController
CreateProjectController

DTOs and Entities:

ProjectEntity
ProjectEntity

ProjectDTO
ProjectDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ListLeadController/roles

Behaviour: ListLeadController/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("ListLeadController")

The production code is at com.kodekonveyor.market.lead.ListLeadController.java
The testcase base should be at com.kodekonveyor.market.lead.ListLeadControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.ListLeadControllerRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project

kodekonveyor_sales

  • Can list leads

The service:

ListLeadController
ListLeadController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

CreateProjectController/input validation

Behaviour: CreateProjectController/input validation

Annotations for the test cases:

@TestedBehaviour("input validation")
@TestedService("CreateProjectController")

The production code is at com.kodekonveyor.market.project.CreateProjectController.java
The testcase base should be at com.kodekonveyor.market.project.CreateProjectControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.CreateProjectControllerInputValidationTest.java

Check all fields of input DTOs in Controllers
The service:

CreateProjectController
CreateProjectController

DTOs and Entities:

ProjectEntity
ProjectEntity

ProjectDTO
ProjectDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

PaymentUpdateController/accept contract

Behaviour: PaymentUpdateController/accept contract

Annotations for the test cases:

@TestedBehaviour("accept contract")
@TestedService("PaymentUpdateController")

The production code is at com.kodekonveyor.market.register.PaymentUpdateController.java
The testcase base should be at com.kodekonveyor.market.register.PaymentUpdateControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.PaymentUpdateControllerAcceptContractTest.java

In registration the acceptance of the general contract rules should be ticked.
The service:

PaymentUpdateController
PaymentUpdateController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

duplicate of UpdateProjectModelController/update milestones

Behaviour: UpdateProjectModelController/update milestones

Annotations for the test cases:

@TestedBehaviour("update milestones")
@TestedService("UpdateProjectModelController")

The production code is at com.kodekonveyor.market.project.UpdateProjectModelController.java
The testcase base should be at com.kodekonveyor.market.project.UpdateProjectModelControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.UpdateProjectModelControllerUpdateMilestonesTest.java

Update the milestones of the project.

The service:

UpdateProjectModelController
UpdateProjectModelController

DTOs and Entities:

ProjectEntity
ProjectEntity

ModelExcerptDTO
ModelExcerptDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

AddToRoleController/roles

Behaviour: AddToRoleController/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("AddToRoleController")

The production code is at com.kodekonveyor.market.register.AddToRoleController.java
The testcase base should be at com.kodekonveyor.market.register.AddToRoleControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.AddToRoleControllerRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project

kodekonveyor_sales

  • Can list leads

The service:

AddToRoleController
AddToRoleController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

UserEntity
UserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

AddToRoleController/registration needed

Behaviour: AddToRoleController/registration needed

Annotations for the test cases:

@TestedBehaviour("registration needed")
@TestedService("AddToRoleController")

The production code is at com.kodekonveyor.market.register.AddToRoleController.java
The testcase base should be at com.kodekonveyor.market.register.AddToRoleControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.AddToRoleControllerRegistrationNeededTest.java

Any process step which entails working on a task can be done only if user legal info are already registered.
This can be checked by making sure the user is in the "can_be_payed" role.

The service:

AddToRoleController
AddToRoleController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

UserEntity
UserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

UpdateTasksController/Logging

Behaviour: UpdateTasksController/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("UpdateTasksController")

The production code is at com.kodekonveyor.market.tasks.UpdateTasksController.java
The testcase base should be at com.kodekonveyor.market.tasks.UpdateTasksControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.UpdateTasksControllerLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged at start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

UpdateTasksController
UpdateTasksController

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ObtainOauth2TokenService/Obtain Oauth2 token

Behaviour: ObtainOauth2TokenService/Obtain Oauth2 token

Annotations for the test cases:

@TestedBehaviour("Obtain Oauth2 token")
@TestedService("ObtainOauth2TokenService")

The production code is at com.kodekonveyor.authentication.ObtainOauth2TokenService.java
The testcase base should be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceObtainOauth2TokenTest.java

Obtain the Oauth2 token for the logged in user
See https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow

The service:

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

GetRepositoryTasksService/compile output

Behaviour: GetRepositoryTasksService/compile output

Annotations for the test cases:

@TestedBehaviour("compile output")
@TestedService("GetRepositoryTasksService")

The production code is at com.kodekonveyor.market.tasks.GetRepositoryTasksService.java
The testcase base should be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceCompileOutputTest.java

The results are returned in a newly created DTO.

All the relevant fields of the returned DTO are filled out properly.

The service:

GetRepositoryTasksService
GetRepositoryTasksService

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

PaymentUpdateController/roles

Behaviour: PaymentUpdateController/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("PaymentUpdateController")

The production code is at com.kodekonveyor.market.register.PaymentUpdateController.java
The testcase base should be at com.kodekonveyor.market.register.PaymentUpdateControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.PaymentUpdateControllerRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project

kodekonveyor_sales

  • Can list leads

The service:

PaymentUpdateController
PaymentUpdateController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

PaymentUpdateController/registration needed

Behaviour: PaymentUpdateController/registration needed

Annotations for the test cases:

@TestedBehaviour("registration needed")
@TestedService("PaymentUpdateController")

The production code is at com.kodekonveyor.market.register.PaymentUpdateController.java
The testcase base should be at com.kodekonveyor.market.register.PaymentUpdateControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.PaymentUpdateControllerRegistrationNeededTest.java

Any process step which entails working on a task can be done only if user legal info are already registered.
This can be checked by making sure the user is in the "can_be_payed" role.

The service:

PaymentUpdateController
PaymentUpdateController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RemoteAuthenticationFilter/authentication infrastructure

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.

Behaviour: RemoteAuthenticationFilter/authentication infrastructure

Annotations for the test cases:

@TestedBehaviour("authentication infrastructure")
@TestedService("RemoteAuthenticationFilter")

The production code is at com.kodekonveyor.authentication.RemoteAuthenticationFilter.java
The testcase base should be at com.kodekonveyor.authentication.RemoteAuthenticationFilterTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.RemoteAuthenticationFilterAuthenticationInfrastructureTest.java

RemoteAuthenticationFilter is a authentication filter implementation to retrieve the auth0 authenticated user from apache

NotLoggedInException is an exception signalling unauthenticated condition

RemoteAuthentication is an Authentication implementation

The service:

authentication
authentication

DTOs and Entities:

UserEntity
UserEntity

Role
Role

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

MarketUserCompilerService/roles

Behaviour: MarketUserCompilerService/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("MarketUserCompilerService")

The production code is at com.kodekonveyor.market.register.MarketUserCompilerService.java
The testcase base should be at com.kodekonveyor.market.register.MarketUserCompilerServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.MarketUserCompilerServiceRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project

kodekonveyor_sales

  • Can list leads

The service:

MarketUserCompilerService
MarketUserCompilerService

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

UserEntity
UserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

LoginController/redirect for login

Behaviour: LoginController/redirect for login

Annotations for the test cases:

@TestedBehaviour("redirect for login")
@TestedService("LoginController")

The production code is at com.kodekonveyor.market.register.LoginController.java
The testcase base should be at com.kodekonveyor.market.register.LoginControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.LoginControllerRedirectForLoginTest.java

The login page redirects the user to the url received in the next parameter.
(All other aspects of the authentication are handled by apache, auth0, and the com.kodekonveyor.authentication module.)
The service:

LoginController
LoginController

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

UpdateTasksController/Get tasks from github

Behaviour: UpdateTasksController/Get tasks from github

Annotations for the test cases:

@TestedBehaviour("Get tasks from github")
@TestedService("UpdateTasksController")

The production code is at com.kodekonveyor.market.tasks.UpdateTasksController.java
The testcase base should be at com.kodekonveyor.market.tasks.UpdateTasksControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.UpdateTasksControllerGetTasksFromGithubTest.java

Issues for one repository are gathered with GetRepositoryTasksService

Issues can be retrieved according to this documentation: https://developer.github.com/v3/issues/#list-repository-issues

The newly obtained tasks are saved in the repository

The status is set by the following rules:

  • open issues marked as "up for grab" are UP_FOR_GRAB
  • open issues marked as "in progress" are IN_PROGRESS
  • other open issues are OPEN
  • closed issues are CLOSED

The service:

UpdateTasksController
UpdateTasksController

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RemoteAuthentication/authentication infrastructure

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.

Behaviour: RemoteAuthentication/authentication infrastructure

Annotations for the test cases:

@TestedBehaviour("authentication infrastructure")
@TestedService("RemoteAuthentication")

The production code is at com.kodekonveyor.authentication.RemoteAuthentication.java
The testcase base should be at com.kodekonveyor.authentication.RemoteAuthenticationTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.RemoteAuthenticationAuthenticationInfrastructureTest.java

RemoteAuthenticationFilter is a authentication filter implementation to retrieve the auth0 authenticated user from apache

NotLoggedInException is an exception signalling unauthenticated condition

RemoteAuthentication is an Authentication implementation

The service:

authentication
authentication

DTOs and Entities:

UserEntity
UserEntity

Role
Role

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegistrationController/store contract details

Behaviour: RegistrationController/store contract details

Annotations for the test cases:

@TestedBehaviour("store contract details")
@TestedService("RegistrationController")

The production code is at com.kodekonveyor.market.register.RegistrationController.java
The testcase base should be at com.kodekonveyor.market.register.RegistrationControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.RegistrationControllerStoreContractDetailsTest.java

create the user and store all the contract related user details
store everything the "User legal info" Business Object contains
The service:

RegistrationController
RegistrationController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

RegistrationInfoDTO
RegistrationInfoDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ListLeadController/Logging

Behaviour: ListLeadController/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("ListLeadController")

The production code is at com.kodekonveyor.market.lead.ListLeadController.java
The testcase base should be at com.kodekonveyor.market.lead.ListLeadControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.ListLeadControllerLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

ListLeadController
ListLeadController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

UpdateTasksController/roles

Behaviour: UpdateTasksController/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("UpdateTasksController")

The production code is at com.kodekonveyor.market.tasks.UpdateTasksController.java
The testcase base should be at com.kodekonveyor.market.tasks.UpdateTasksControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.UpdateTasksControllerRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.
  • Only this role can use UpdateTasksController

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project
  • Can add/remove roles

kodekonveyor_sales

  • Can list leads

The service:

UpdateTasksController
UpdateTasksController

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

GetRepositoryTasksService/Logging

Behaviour: GetRepositoryTasksService/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("GetRepositoryTasksService")

The production code is at com.kodekonveyor.market.tasks.GetRepositoryTasksService.java
The testcase base should be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged at start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

GetRepositoryTasksService
GetRepositoryTasksService

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ListTasksController/Logging

Behaviour: ListTasksController/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("ListTasksController")

The production code is at com.kodekonveyor.market.tasks.ListTasksController.java
The testcase base should be at com.kodekonveyor.market.tasks.ListTasksControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.ListTasksControllerLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged at start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

ListTasksController
ListTasksController

DTOs and Entities:

MarketUserEntity
MarketUserEntity

ProjectEntity
ProjectEntity

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

CreateProjectController/Logging

Behaviour: CreateProjectController/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("CreateProjectController")

The production code is at com.kodekonveyor.market.project.CreateProjectController.java
The testcase base should be at com.kodekonveyor.market.project.CreateProjectControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.CreateProjectControllerLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

CreateProjectController
CreateProjectController

DTOs and Entities:

ProjectEntity
ProjectEntity

ProjectDTO
ProjectDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

AddToRoleController/one role once

Behaviour: AddToRoleController/one role once

Annotations for the test cases:

@TestedBehaviour("one role once")
@TestedService("AddToRoleController")

The production code is at com.kodekonveyor.market.register.AddToRoleController.java
The testcase base should be at com.kodekonveyor.market.register.AddToRoleControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.AddToRoleControllerOneRoleOnceTest.java

the user is added to the role, if is not already member
The service:

AddToRoleController
AddToRoleController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

UserEntity
UserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ObtainOauth2TokenService/Logging

Behaviour: ObtainOauth2TokenService/Logging

Annotations for the test cases:

@TestedBehaviour("Logging")
@TestedService("ObtainOauth2TokenService")

The production code is at com.kodekonveyor.authentication.ObtainOauth2TokenService.java
The testcase base should be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.ObtainOauth2TokenServiceLoggingTest.java

  • All log entries should contain the identifier of the user and the (attempted) operation.
  • All activities should be logged at start of the operation.
  • All failed operations should be logged with the reason of the failure
  • All successful operations should be logged with reference to the accessed data

The service:

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

AuthenticatedUserService/authenticated user

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.

Behaviour: AuthenticatedUserService/authenticated user

Annotations for the test cases:

@TestedBehaviour("authenticated user")
@TestedService("AuthenticatedUserService")

The production code is at com.kodekonveyor.authentication.AuthenticatedUserService.java
The testcase base should be at com.kodekonveyor.authentication.AuthenticatedUserServiceTestBase.java
The testcase should probably be at com.kodekonveyor.authentication.AuthenticatedUserServiceAuthenticatedUserTest.java

The current authenticated user is returned by the service
The service:

AuthenticatedUserService
AuthenticatedUserService

DTOs and Entities:

UserEntity
UserEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

LoginController/redirect for login

It is already implemented. Your task is to annotate the test class correctly and set the names right.
We pay 1 testcase for it.
Behaviour: LoginController/redirect for login

Annotations for the test cases:

@TestedBehaviour("redirect for login")
@TestedService("LoginController")

The production code is at com.kodekonveyor.market.register.LoginController.java
The testcase base should be at com.kodekonveyor.market.register.LoginControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.LoginControllerRedirectForLoginTest.java

The login page redirects the user to the url received in the next parameter.
(All other aspects of the authentication are handled by apache, auth0, and the com.kodekonveyor.authentication module.)
The service:

LoginController
LoginController

DTOs and Entities:

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

UpdateProjectModelController/update milestones

Behaviour: UpdateProjectModelController/update milestones

Annotations for the test cases:

@TestedBehaviour("update milestones")
@TestedService("UpdateProjectModelController")

The production code is at com.kodekonveyor.market.project.UpdateProjectModelController.java
The testcase base should be at com.kodekonveyor.market.project.UpdateProjectModelControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.UpdateProjectModelControllerUpdateMilestonesTest.java

Update the milestones of the project.

The service:

UpdateProjectModelController
UpdateProjectModelController

DTOs and Entities:

ProjectEntity
ProjectEntity

ModelExcerptDTO
ModelExcerptDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

GithubGetService/use github api

Behaviour: GithubGetService/use github api

Annotations for the test cases:

@TestedBehaviour("use github api")
@TestedService("GithubGetService")

The production code is at com.kodekonveyor.technical.GithubGetService.java
The testcase base should be at com.kodekonveyor.technical.GithubGetServiceTestBase.java
The testcase should probably be at com.kodekonveyor.technical.GithubGetServiceUseGithubApiTest.java

use github api using token authentication

You should set the "Authorization" header to "token my_access_token" as described in https://developer.github.com/changes/2020-02-14-deprecating-password-auth/

See https://www.baeldung.com/httpclient-custom-http-header for setting the header.

for access token you generate one at https://github.com/settings/tokens with "repo" scope, and put it to the "issuetoken" environment variable.

In Linux you can use your .bashrc to set the environment variable. You can use the command line

curl -H "Authorization: token $issuetoken" https://api.github.com/repos/kode-konveyor/taskmarket/issues/74

to check your environment.

This service should be integration tested instead of unit testing:

  • put the tests under the src/integration-tests hierarchy
  • use the @ExcludeFromCodeCoverage annotation on the production service
  • no mocking, just calling the service and examining the result
  • read the value of the token from the issuetoken environment variable, and put it to the githubToken configuration field in the setUp method.

The service:

UrlGetService
UrlGetService

DTOs and Entities:

JsonResult
JsonResult

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

UpdateTasksService/update tasks

Behaviour: UpdateTasksService/update tasks

Annotations for the test cases:

@TestedBehaviour("update tasks")
@TestedService("UpdateTasksService")

The production code is at com.kodekonveyor.market.tasks.UpdateTasksService.java
The testcase base should be at com.kodekonveyor.market.tasks.UpdateTasksServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.UpdateTasksServiceUpdateTasksTest.java

Task Description:
The tasks are updated by the project manager as part of updating the project model.

This is called from UpdateProjectModelController, and implemented in UpdateTasksService.

Current tasks are gathered using GetRepositoryTasksService

Github issue descriptions have a beginning and ending delimiter line.

  • the beginning delimiter line is: "Task Description:"
  • the ending delimiter line is: "End of Task Description"

The actual task description is always between the delimiter.
The history and diff is put after the ending delimiter.

For each tasks in the tasks parameter:
The task name is <serviceName>/<behaviourName>.

  • If there is no github issue with the name, then it is created.
  • If there is already a github issue with the name
    • if the documentation of the task is the same as the documentation of the github issue between the delimiter lines, then nothing is done
    • in case of difference, then the documentation is put between delimiter lines, the diff of the whole issue description and the task documentation is put after the ending delimiter line, and the task is updated

If a github issue has no corresponding task in the list, it is marked with the "not in model" label (if it does not already have it)

End of Task Description
Diff:
+this
-that

The service:

UpdateTasksService
UpdateTasksService

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegisterInterestController/input validation

Behaviour: RegisterInterestController/input validation

Annotations for the test cases:

@TestedBehaviour("input validation")
@TestedService("RegisterInterestController")

The production code is at com.kodekonveyor.market.lead.RegisterInterestController.java
The testcase base should be at com.kodekonveyor.market.lead.RegisterInterestControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.RegisterInterestControllerInputValidationTest.java

Check all fields of input DTOs in Controllers
The service:

RegisterInterestController
RegisterInterestController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegistrationController/check regime validity

Behaviour: RegistrationController/check regime validity

Annotations for the test cases:

@TestedBehaviour("check regime validity")
@TestedService("RegistrationController")

The production code is at com.kodekonveyor.market.register.RegistrationController.java
The testcase base should be at com.kodekonveyor.market.register.RegistrationControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.RegistrationControllerCheckRegimeValidityTest.java

check validity of payment regime
These are the names and meanings of different payment regimes:
restofworld: Anyone else, issuing bills

The service:

RegistrationController
RegistrationController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

RegistrationInfoDTO
RegistrationInfoDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

GetRepositoryTasksService/Get tasks from github

Behaviour: GetRepositoryTasksService/Get tasks from github

Annotations for the test cases:

@TestedBehaviour("Get tasks from github")
@TestedService("GetRepositoryTasksService")

The production code is at com.kodekonveyor.market.tasks.GetRepositoryTasksService.java
The testcase base should be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceTestBase.java
The testcase should probably be at com.kodekonveyor.market.tasks.GetRepositoryTasksServiceGetTasksFromGithubTest.java

Issues for one repository are gathered with GetRepositoryTasksService

Issues can be retrieved according to this documentation: https://developer.github.com/v3/issues/#list-repository-issues

The newly obtained tasks are saved in the repository

The status is set by the following rules:

  • open issues marked as "up for grab" are UP_FOR_GRAB
  • open issues marked as "in progress" are IN_PROGRESS
  • other open issues are OPEN
  • closed issues are CLOSED

The service:

GetRepositoryTasksService
GetRepositoryTasksService

DTOs and Entities:

TaskDTO, TaskListDTO, TaskEntity, TaskStatusEnum
TaskDTO,  TaskListDTO, TaskEntity, TaskStatusEnum

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegisterInterestController/input validation

Behaviour: RegisterInterestController/input validation

Annotations for the test cases:

@TestedBehaviour("input validation")
@TestedService("RegisterInterestController")

The production code is at com.kodekonveyor.market.lead.RegisterInterestController.java
The testcase base should be at com.kodekonveyor.market.lead.RegisterInterestControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.RegisterInterestControllerInputValidationTest.java

Check all fields of input DTOs in Controllers
The service:

RegisterInterestController
RegisterInterestController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegistrationController/store contract details

Behaviour: RegistrationController/store contract details

Annotations for the test cases:

@TestedBehaviour("store contract details")
@TestedService("RegistrationController")

The production code is at com.kodekonveyor.market.register.RegistrationController.java
The testcase base should be at com.kodekonveyor.market.register.RegistrationControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.register.RegistrationControllerStoreContractDetailsTest.java

create the user and store all the contract related user details
store everything the "User legal info" Business Object contains
The service:

RegistrationController
RegistrationController

DTOs and Entities:

MarketUserDTO
MarketUserDTO

MarketUserEntity
MarketUserEntity

RegistrationInfoDTO
RegistrationInfoDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

CreateProjectController/roles

Behaviour: CreateProjectController/roles

Annotations for the test cases:

@TestedBehaviour("roles")
@TestedService("CreateProjectController")

The production code is at com.kodekonveyor.market.project.CreateProjectController.java
The testcase base should be at com.kodekonveyor.market.project.CreateProjectControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.project.CreateProjectControllerRolesTest.java

Before attempting to do any operation, all controllers should make sure that the user have appropriate rights.

registered

  • When the user registers itself with the github login name, it is added to the "registered" role

Project roles

  • The role names starting with the project name and a '_' are considered to be the roles belonging to the project.
  • The resources of a private project can only be accessed by users in a role belonging to a project
  • The <projectname>_manager role is able to manage the given project

can_be_payed

  • Users with up to date contract information should be added to the can_be_payed role, and whenever the information becomes outdated, they should be removed from that role

kodekonveyor_contract

  • The kodekonveyor_contract role can see all contract related role and the payment details of a user.
  • This does not include the payment history.

kodekonveyor_technical

  • The kodekonveyor_technical role can see all the technical data of the user, its legal name and github username.
  • This does not include other legal or any payment data.

kodekonveyor_projectmanager

  • Can create/delete/configure any aspect of any project
  • Can add/remove roles

kodekonveyor_sales

  • Can list leads

The service:

CreateProjectController
CreateProjectController

DTOs and Entities:

ProjectEntity
ProjectEntity

ProjectDTO
ProjectDTO

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

ListLeadController/storage

Behaviour: ListLeadController/storage

Annotations for the test cases:

@TestedBehaviour("storage")
@TestedService("ListLeadController")

The production code is at com.kodekonveyor.market.lead.ListLeadController.java
The testcase base should be at com.kodekonveyor.market.lead.ListLeadControllerTestBase.java
The testcase should probably be at com.kodekonveyor.market.lead.ListLeadControllerStorageTest.java

Store and retrieve Entities through Repositories
The service:

ListLeadController
ListLeadController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, or ask on the development slack channel or ask your mentor.

RegisterInterestController/storage

Behaviour: RegisterInterestController/storage

Annotations for the test cases:

@TestedBehaviour("storage")
@TestedService("RegisterInterestController")

The production code is at com.kodekonveyor.market.lead.RegisterInterestController.java
You should probably start at com.kodekonveyor.market.lead.RegisterInterestControllerTests.java

Store and retrieve Entities through Repositories
The service:

RegisterInterestController
RegisterInterestController

DTOs and Entities:

LeadDTO
LeadDTO

LeadEntity
LeadEntity

If you have questions, see the FAQ, ask on the Telegram channel or ask your mentor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.