package de.epages.ws.shopconfig2;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import de.epages.ws.ProviderWebServiceTestConfiguration;
import de.epages.ws.shopconfig2.stub.TCreateShop;
import de.epages.ws.shopconfig2.stub.TInfoShop;
import de.epages.ws.shopconfig2.stub.TShopRef;
import de.epages.ws.shopconfig2.stub.TUpdateShop;
public class ShopConfigServiceTest {
private static final ShopConfigServiceClient shopConfigService = new ShopConfigServiceClientImpl(
new ProviderWebServiceTestConfiguration());
private static String ALIAS = "java_test-1";
/**
* Sets all the required prerequisites for the tests. Will be called before
* the test are run.
*/
@Before
public void init() {
cleanUp();
}
@After
public void cleanUp() {
// delete the shop if it still/already exists
TShopRef shopRef = new TShopRef();
shopRef.setAlias(ALIAS);
if (shopConfigService.exists(shopRef)) {
shopConfigService.deleteShopRef(shopRef);
}
}
@Test
public void shopInStoreDatabase() {
// create a shop
TCreateShop Shop_create = new TCreateShop();
Shop_create.setAlias(ALIAS);
Shop_create.setDatabase("Store");
Shop_create.setImportFiles(null);
Shop_create.setShopAlias(ALIAS);
Shop_create.setShopType("ECom100");
Shop_create.setDomainName("mydomain.com");
Shop_create.setHasSSLCertificate(true);
int ShopID = shopConfigService.create(Shop_create);
assertTrue("shop created in Store database", ShopID > 0);
// test if a shop reference exists
TShopRef shopRef = new TShopRef();
shopRef.setAlias(ALIAS);
boolean exists = shopConfigService.exists(shopRef);
assertTrue("exists?", exists);
// get information about a shop
TInfoShop Shop_out = shopConfigService.getInfo(shopRef);
assertEquals("ShopType", Shop_create.getShopType(), Shop_out.getShopType());
assertEquals("HasSSLCertificate", Shop_create.getHasSSLCertificate(), Shop_out.isHasSSLCertificate());
assertEquals("DomainName", Shop_create.getDomainName(), Shop_out.getDomainName());
assertEquals("Database", Shop_create.getDatabase(), Shop_out.getDatabase());
// update the shop
// - change shop type
// - change flags HasSSLCertificate, IsTrialShop, IsInternalTestShop
// - change domain
TUpdateShop Shop_update = new TUpdateShop();
Shop_update.setAlias(ALIAS);
Shop_update.setDatabase("Store");
Shop_update.setShopType("ECom1000");
Shop_update.setHasSSLCertificate(false);
Shop_update.setDomainName("yourdomain.com");
shopConfigService.update(Shop_update);
// get information about the updated shop
Shop_out = shopConfigService.getInfo(shopRef);
assertEquals("updated ShopType", Shop_update.getShopType(), Shop_out.getShopType());
assertEquals("updated HasSSLCertificate", Shop_update.getHasSSLCertificate(), Shop_out.isHasSSLCertificate());
assertEquals("updated DomainName", Shop_update.getDomainName(), Shop_out.getDomainName());
assertEquals("updated Database", Shop_create.getDatabase(), Shop_out.getDatabase());
// get information about all shops
// WARNING: this can be very slow if there are many shops
TInfoShop[] Shops_out = shopConfigService.getAllInfo();
assertTrue("getAllInfo result count", Shops_out.length > 0);
// delete the shop data (leaves the shop history in PBO)
shopConfigService.delete(shopRef);
exists = shopConfigService.exists(shopRef);
assertTrue("shop history still exists", exists);
Shop_out = shopConfigService.getInfo(shopRef);
assertTrue("flag IsDeleted was set", Shop_out.isIsDeleted());
// Assert.IsNull(Shop_out.Database,
// "data was removed from store database");
// delete the shop completely (including history)
shopConfigService.deleteShopRef(shopRef);
// check that the shop is really deleted
exists = shopConfigService.exists(shopRef);
assertFalse("shop is deleted completely", exists);
}
@Test
public void shopInDefaultDatabase() {
// create a new shop in the default database using default import file
TCreateShop Shop_create = new TCreateShop();
Shop_create.setAlias(ALIAS);
Shop_create.setDatabase("Store");
Shop_create.setImportFiles(null);
Shop_create.setShopAlias(ALIAS);
Shop_create.setShopType("ECom100");
Shop_create.setDomainName("mydomain.com");
Shop_create.setHasSSLCertificate(false);
int ShopID = shopConfigService.create(Shop_create);
assertTrue("create in default database", ShopID > 0);
// check in which database the shop was actually created
TShopRef shopRef = new TShopRef();
shopRef.setAlias(ALIAS);
TInfoShop Shop_out = shopConfigService.getInfo(shopRef);
assertNotNull("default database name", Shop_out.getDatabase());
// delete the shop completely (including history)
shopConfigService.deleteShopRef(shopRef);
}
}