Hello guys I implemented a class that retrieves the data from Web Service and it works very nice But I want to test whether my method parses the data correctly. I implemented a UnitTest but I always get this Error
java.lang.NullPointerException at de.tollcollect.portal.MasterDataSubset.MasterDataSubSetTest.callsServiceOfMasterDataSubset(MasterDataSubSetTest.java:117) ..
this my UnitTest
@RunWith(Parameterized.class)
public class MasterDataSubSetTest {
@Mock
private AccountServicePortType service;
@Mock
private GetMasterDataSubSetResponse getResponseTest;
@Mock
private MasterDataSubsetPresenter presenter;
@Mock
GetMasterDataSubSetResponseType responseType;
private String number;
private String userNumber;
private String description;
private String expectedResult;
private String test;
public MasterDataSubSetTest(String number, String userNumber,String description, String expectedResult) {
this.number = number ;
this.userNumber = userNumber;
this.description = description;
this.expectedResult = expectedResult;
}
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{
"0", //Number for test case
"1000",
"Service Test--> input UserNumber 1000083 adesso AG --> Expected ", //Adress
"adesso AG", // expected
}
});
}
@Test
public void callsServiceOfMasterDataSubset() throws NullPointerException, FaultMessage {
GetMasterDataSubSet getMasterData = new GetMasterDataSubSet();
getMasterData.setUserNumber(userNumber);
getResponseTest= service.getMasterDataSubSet(getMasterData);
MasterDataSubset testModel= presenter.buildModel(getResponseTest);
final String userNumber = "1000083";
assertEquals("adil", testModel.getCity());
}
and this my Code
@Component
@Scope("prototype")
public class MasterDataSubsetPresenter {
private String userID;
private Locale locale;
private final MasterDataSubsetView view;
private final ShowReferenceDataService showReferenceDataService;
/**
*
* @param masterDataSubsetView
*/
@Autowired
public MasterDataSubsetPresenter(MasterDataSubsetView masterDataSubsetView,final ShowReferenceDataService showReferenceDataService){
this.view = masterDataSubsetView;
this.showReferenceDataService = showReferenceDataService;
}
/**
*
* @param userID
*/
public void setUserID(String userID) {
this.userID = userID;
}
public void setLocale(Locale locale) {
this.locale = locale;
}
/**
* get view of Portlet
* @return view
*/
public MasterDataSubsetView getView() {
view.addSubsetToLayout(getMasterDataSubset());
return view;
}
private MasterDataSubset getMasterDataSubset() {
if (userID == null) {
throw new IllegalStateException("UserID is null before getting view.");
}
String userNumber = showReferenceDataService.getUserNumberByUserId(Long.parseLong(userID));
MasterDataSubset model = buildModel(showReferenceDataService.getMasterDataSubSet(userNumber));
return model;
}
/**
*
* @param referenceData
* @return
*/
public MasterDataSubset buildModel(GetMasterDataSubSetResponse referenceData) {
MasterDataSubset masterDataSubset= new MasterDataSubset();
GetMasterDataSubSetResponseType response = referenceData.getResponse();
masterDataSubset.setUserNumber(response.getUserNumber());
masterDataSubset.parseCompanyDataSubset(response.getCompany());
masterDataSubset.parseInvoiceDate(response.getFacturaDate());
masterDataSubset.setLocale(this.locale);
return masterDataSubset;
}
}
@Service
public class ShowReferenceDataServiceImpl implements ShowReferenceDataService {
private static final Logger LOGGER = LoggerFactory.getLogger(ShowReferenceDataServiceImpl.class);
private final AccountServicePortType accountService;
private final TcLiferayRoleService tcLiferayRoleService;
private final PortalBaseConfiguration portalBaseConfiguration;
private final TcLiferayUserService tcLiferayUserService;
/**
* Instantiates a new show reference data service impl.
*
* @param accountService the account service
* @param tcLiferayRoleService the tc liferay role service
* @param portalBaseConfiguration the portal base configuration
* @param tcLiferayUserService the tc liferay user service
*/
@Autowired
public ShowReferenceDataServiceImpl(final AccountServicePortType accountService,
final TcLiferayRoleService tcLiferayRoleService,
final PortalBaseConfiguration portalBaseConfiguration,
final TcLiferayUserService tcLiferayUserService) {
this.accountService = accountService;
this.tcLiferayRoleService = tcLiferayRoleService;
this.portalBaseConfiguration = portalBaseConfiguration;
this.tcLiferayUserService = tcLiferayUserService;
}
@Override
public boolean isUserServicepartner(long userId) {
boolean isSP = tcLiferayRoleService.isUserInRole(userId, portalBaseConfiguration.getRoleNameServicePartner());
boolean isSPMandant = tcLiferayRoleService.isUserInRole(userId, portalBaseConfiguration.getRoleNameServicePartnerMandant());
return (isSP || isSPMandant);
}
@Override
@Nonnull
public String getUserNumberByUserId(long userId) {
return tcLiferayUserService.getUserNumberByUserId(userId);
}
@Override
public GetMasterDataResponse getReferenceData(String userNumber) {
GetMasterData getMasterData = new GetMasterData();
getMasterData.setUserNumber(userNumber);
try {
return accountService.getMasterData(getMasterData);
} catch (Exception e) {
LOGGER.error("Service is not available!", e);
throw new TcPortalException("Service is not available!", e);
}
}
/**
*
* @param userNumber
* @return
*/
@Override
@Nonnull
public GetMasterDataSubSetResponse getMasterDataSubSet(@Nonnull String userNumber) {
checkNotNull(userNumber, "userNumber cannot be null");
GetMasterDataSubSet getMasterData = new GetMasterDataSubSet();
getMasterData.setUserNumber(userNumber);
try {
return accountService.getMasterDataSubSet(getMasterData);
} catch (FaultMessage e) {
LOGGER.error("Service is not available!", e);
throw new TcPortalException("Service is not available!", e);
}
}
}
Aucun commentaire:
Enregistrer un commentaire