I am getting an error message
/home/circleci/code/app/src/androidTest/java/com/xx/xxx/test/injection/components/MockAppComponent.java:48: error: [Dagger/MissingBinding] com.xx.xxx.printing.storage.PdfTicketStorage cannot be provided without an @Inject constructor or an @Provides-annotated method.
public interface MockAppComponent extends AppComponent {
^
com.xx.xxx.printing.storage.PdfTicketStorage is injected at
com.xx.xxx.clean.offline.OfflineHelper(…, pdfTicketStorage, …)
com.xx.xxx.clean.offline.OfflineHelper is injected at
com.xx.xxx.clean.offline.repository.OfflineFOrderOnCompleteApiRepository(offlineHelper, …)
com.xx.xxx.clean.offline.repository.OfflineFOrderOnCompleteApiRepository is injected at
com.xx.xxx.clean.forder.data.repository.FOrderRepository(…, offlineFOrderOnCompleteApiRepository)
com.xx.xxx.clean.forder.data.repository.FOrderRepository is injected at
com.xx.xx.test.scenarios.BaseScenario.fOrderRepository
com.xx.xxx.test.scenarios.BaseScenario is injected at
com.xx.xxx.test.injection.components.MockAppComponent.inject(com.xx.xxx.test.scenarios.BaseScenario)
The following other entry points also depend on it:
com.xx.xxx.test.injection.components.MockAppComponent.inject(com.xx.xxx.test.scenarios.VehicleTakeoverScenario)
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.activities.MainActivity) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xx.fragments.fler.forder.BaseFOrderFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.fragments.fler.forder.BaseFlOrderDataFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.fragments.fller.florder.FlOrderDataFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.fragments.fller.florder.FlOrderSummaryFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.fragments.fller.florder.FOrderDeallocationFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.clean.orderslist.serviceorders.view.ServiceOrderListFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.fragments.fller.florder.ServiceOrderViewFragment) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
com.xx.xxx.injection.components.ActivityComponent.inject(com.xx.xxx.clean.orderslist.serviceorders.view.ServiceOrderAdapter) [com.xx.xxx.test.injection.components.MockAppComponent → com.xx.xxx.injection.components.ActivityComponent]
I am not so sure where to add the injection.
This mu OfflineHelper class which requires pdfTicketStorage
class OfflineHelper @Inject constructor(
private val app: App,
private val settings: Settings,
private val pdfTicketStorage: PdfTicketStorage,
@Named("default") private val gson: Gson
)
PdfStorage class which also has offlinehelper
public class PdfTicketStorage {
private final String cloudStorageBucket;
private final Lazy<OfflineHelper> offlineHelper;
public PdfTicketStorage(String cloudStorageBucket, Lazy<OfflineHelper> offlineHelper) {
this.cloudStorageBucket = cloudStorageBucket;
this.offlineHelper = offlineHelper;
}
}
MockAppCoomponent looks likes this
@PerApp
@Component(modules = {
MockAppModule.class,
MockApiModule.class,
MockServiceModule.class,
MockNewOrderModule.class,
MockLoginModule.class,
MockVehicleModule.class,
MockCommsModule.class,
MockFlOrderModule.class,
MockServiceOrderModule.class,
MockSalesOrderModule.class,
MockRealtimeMessagingModule.class,
MockHardwareServiceModule.class,
MockRemoteHardwareServiceModule.class
})
public interface MockAppComponent extends AppComponent {
MockActivityComponent activityComponent(MockActivityModule module);
void inject(BaseScenario scenario);
void inject(VehicleTakeoverScenario scenario);
void inject(BaseTest test);
void inject(AaaStartupTests test);
void inject(ServiceOrderData serviceOrderData);
void inject(SalesOrderApiService salesOrderApiService);
void inject(SalesOrderDataMapper salesOrderDataMapper);
void inject(VehicleData vehicleData);
void inject(Resources resources);
}
As in the error it said BaseScenario
I added below code in BaseScenario
@Inject
PdfTicketStorage pdfTicketStorage;
I am not sure what else to do
could you please suggest on what should be done to fix this please
Thanks R