Sorry I mean "remove" :-) Thanks Edward
On Tue, Aug 16, 2016 at 6:35 PM, Chang Chen <[email protected]> wrote: > Hi Edward > > Does remote mean run TestEagleConfig in different JVM? > > Thanks > Chang > > On Wednesday, August 17, 2016, Edward Zhang <[email protected]> > wrote: > > > TestEagleConfig is not a valid test case because it assumes that it can > > initialize EagleConfigFactory, but when we execute multiple test cases, > > this may not work as EagleConfigFactory may already be initialized before > > this test case is executed. So setting "config.resource" will not have > any > > effect. > > > > I suggest we remote TestEagleConfig, and also going forward we can need > > refactor EagleConfigFactor to be not a singleton but use > > com.typesafe.config.Config as constructor parameter. > > > > Thanks > > Edward > > > > On Tue, Aug 16, 2016 at 4:26 AM, Chang Chen <[email protected] > > <javascript:;>> wrote: > > > > > Hi Guys > > > > > > In the middle of writing UT for Eagle, we found it is difficult to mock > > > EagleConfigFactory, since it has static method. The current workaround > > is > > > introducing powermock, so that we can set manager to mock object , i.e. > > > > > > Whitebox.setInternalState(EagleConfigFactory.class, "manager", > > > eagleConfigFactory); > > > > > > This is OK in most cases, but TestEagleConfig.testInit could be failed, > > > because manager only initialized at first time and > EagleConfigFactory's > > > Constructor is private: > > > > > > private static EagleConfigFactory manager = new > EagleConfigFactory(); > > > > > > EagleConfigFactory actually has two roles, one is factory and another > is > > > configuration. I propose refactoring EagleConfigFactory and distinguish > > > these two roles: > > > > > > public class EagleConfigImpl implements EagleConfig{ > > > } > > > > > > public class EagleConfigFactory { > > > public static EagleConfig load(){} > > > public static void reset(EagleConfig config){ > > > if (config == null) { > > > //default > > > }else{ > > > } > > > } > > > } > > > > > > However doing so, we need call EagleConfigFactory.reset at the > beginning > > of > > > eagle start. > > > > > > Any ideas? > > > > > > Thanks > > > Chang > > > > > >
