hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-3896) Make AssignmentManager standalone testable by having its constructor take Interfaces rather than a CatalogTracker and a ServerManager
Date Wed, 26 Sep 2012 20:27:09 GMT

    [ https://issues.apache.org/jira/browse/HBASE-3896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13464141#comment-13464141
] 

stack commented on HBASE-3896:
------------------------------

bq. Mockito already can just mock those out (eg. ServerManager manager = Mockito.mock(ServerManager.class)),
so another interface isn't really all that necessary.

That is true (I think that it this way in TestAM).

[~cody.marcel@gmail.com] I think we should close this issue given Jesses' reasoning.  This
issue was filed in May of 2011 by me when I probably made my first attempt at trying to do
a standalone AM and failed thinking I needed SM and CT to be Interfaces.  Later in the year,
I wrote the first TestAssignmentManager implementation which stands up an AM w/o its Master
wrapping using Mockito.  Therein I did the trick Jesse suggests of getting around the need
of an Interface by doing ServerManager manager = Mockito.mock(ServerManager.class)).  I think
I should have closed this issue at that time having done a workaround (And Jesse makes good
argument that making Interfaces of SM and CT won't help elsewhere).  What you think?
                
> Make AssignmentManager standalone testable by having its constructor take Interfaces
rather than a CatalogTracker and a ServerManager
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-3896
>                 URL: https://issues.apache.org/jira/browse/HBASE-3896
>             Project: HBase
>          Issue Type: Task
>            Reporter: stack
>            Assignee: Cody Marcel
>
> If we could stand up an instance of AssignmentManager, a core fat class that has a bunch
of critical logic managing state transitions, then it'd be easier writing unit tests around
its logic.  Currently its hard because it takes a ServerManager and a CatalogTracker, but
a little bit of work could turn these into Interfaces.  SM looks easy to do.  Changing CT
into an Interface instead might ripple a little through the code base but it'd probably be
well worth it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message