dicoogle icon indicating copy to clipboard operation
dicoogle copied to clipboard

Refactor components for testing purposes

Open Enet4 opened this issue 9 years ago • 0 comments

Many of our classes (e.g. server.web.auth.Authentication), are tightly dependent on the file system or other resources that only make sense in the full application, and so they are hard to test individually. We should refactor these components to loosen this coupling.


Here's a list of singletons in our core project. I retrieved them with a search for the static getInstance method. I suggest that we progressively stop using singletons and rely on dependency injection instead.

pt.ua.dicoogle.core

ClientSettings.java QueryHistorySupport.java ServerSettings.java

pt.ua.dicoogle.DicomLog

LogDICOM.java

pt.ua.dicoogle.plugins

PluginController.java PluginPanelLoader.java

pt.ua.dicoogle.rGUI.client

AdminRefs.java ClientCore.java UserRefs.java

pt.ua.dicoogle.rGUI.client.UIHelper

PanelPluginsController.java Result2Tree.java ServerMessagesManager.java TrayIconCreator.java

pt.ua.dicoogle.rGUI.client.windows

About.java ActiveSessions.java ChangePassword.java ClientOptions.java ConnectWindow.java FileAlreadyIndexed.java Logs.java MainWindow.java QRServers.java QueryHistory.java ServerOptions.java Services.java UsersManager.java

pt.ua.dicoogle.rGUI.RFileBrowser

RemoteFileSystemServer.java

pt.ua.dicoogle.rGUI.server

AdminFeatures.java Login.java

pt.ua.dicoogle.rGUI.server.controllers

AccessList.java DicomSend.java DirectorySettings.java IndexOptions.java Logs.java NetworkInterfaces.java PendingMessages.java PluginController4Admin.java PluginController4user.java QRServers.java QueryRetrieve.java SOPClass.java StartupServices.java TaskList.java UsersManager.java

pt.ua.dicoogle.server

ControlServices.java SOPList.java

pt.ua.dicoogle.server.users

RolesStruct.java UserSessions.java UserSessionsLog.java UsersStruct.java

pt.ua.dicoogle.server.web.auth

Authentication.java

pt.ua.dicoogle.server.web.management

Dicoogle.java Indexer.java Services.java

pt.ua.dicoogle.server.web.rest.elements

ExamTimeCore.java pt.ua.dicoogle.taskManager RunningIndexTasks.java

Enet4 avatar Jan 26 '16 21:01 Enet4