use of ClientServerApi.CommandWrapper in project SmartCity-Market by TechnionYP5777.
the class Manager method registerNewWorker.
@Override
public void registerNewWorker(Login l) throws InvalidParameter, CriticalError, EmployeeNotConnected, ConnectionFailure, WorkerAlreadyExists {
log.info("Creating registerNewWorker command wrapper with username: " + l.getUserName());
String serverResponse = sendRequestWithRespondToServer((new CommandWrapper(getClientId(), CommandDescriptor.REGISTER_NEW_WORKER, Serialization.serialize(l))).serialize());
CommandWrapper commandDescriptor = getCommandWrapper(serverResponse);
try {
resultDescriptorHandler(commandDescriptor.getResultDescriptor());
} catch (InvalidCommandDescriptor | EmployeeAlreadyConnected | AuthenticationError | ProductStillForSale | AmountBiggerThanAvailable | ProductPackageDoesNotExist | ProductAlreadyExistInCatalog | ProductNotExistInCatalog | ParamIDAlreadyExists | ParamIDDoesNotExist | WorkerDoesNotExist | IngredientStillInUse | ManfacturerStillInUse ¢) {
log.fatal("Critical bug: this command result isn't supposed to return here");
throw new CriticalError();
}
log.info("registerNewWorker command succeed.");
}
use of ClientServerApi.CommandWrapper in project SmartCity-Market by TechnionYP5777.
the class Manager method removeProductFromCatalog.
@Override
public void removeProductFromCatalog(SmartCode c) throws InvalidParameter, CriticalError, EmployeeNotConnected, ProductNotExistInCatalog, ProductStillForSale, ConnectionFailure {
log.info("Creating removeProductFromCatalog command wrapper with barcode: " + c.getBarcode());
String serverResponse = sendRequestWithRespondToServer((new CommandWrapper(getClientId(), CommandDescriptor.REMOVE_PRODUCT_FROM_CATALOG, Serialization.serialize(c))).serialize());
CommandWrapper commandDescriptor = getCommandWrapper(serverResponse);
try {
resultDescriptorHandler(commandDescriptor.getResultDescriptor());
} catch (InvalidCommandDescriptor | EmployeeAlreadyConnected | AuthenticationError | AmountBiggerThanAvailable | ProductPackageDoesNotExist | ProductAlreadyExistInCatalog | WorkerAlreadyExists | ParamIDAlreadyExists | ParamIDDoesNotExist | WorkerDoesNotExist | IngredientStillInUse | ManfacturerStillInUse ¢) {
log.fatal("Critical bug: this command result isn't supposed to return here");
throw new CriticalError();
}
log.info("removeProductFromCatalog command succeed.");
}
use of ClientServerApi.CommandWrapper in project SmartCity-Market by TechnionYP5777.
the class Manager method editProductFromCatalog.
@Override
public void editProductFromCatalog(CatalogProduct p) throws InvalidParameter, CriticalError, EmployeeNotConnected, ProductNotExistInCatalog, ConnectionFailure {
log.info("Creating editProductFromCatalog command wrapper with product: " + p);
String serverResponse = sendRequestWithRespondToServer((new CommandWrapper(getClientId(), CommandDescriptor.EDIT_PRODUCT_FROM_CATALOG, Serialization.serialize(p))).serialize());
CommandWrapper commandDescriptor = getCommandWrapper(serverResponse);
try {
resultDescriptorHandler(commandDescriptor.getResultDescriptor());
} catch (InvalidCommandDescriptor | EmployeeAlreadyConnected | AuthenticationError | ProductStillForSale | AmountBiggerThanAvailable | ProductPackageDoesNotExist | ProductAlreadyExistInCatalog | WorkerAlreadyExists | ParamIDAlreadyExists | ParamIDDoesNotExist | WorkerDoesNotExist | IngredientStillInUse | ManfacturerStillInUse ¢) {
log.fatal("Critical bug: this command result isn't supposed to return here");
throw new CriticalError();
}
log.info("editProductFromCatalog command succeed.");
}
use of ClientServerApi.CommandWrapper in project SmartCity-Market by TechnionYP5777.
the class RemoveProductFromCartTest method setup.
@Before
public void setup() {
PropertyConfigurator.configure("../log4j.properties");
customer = new Customer(clientRequestHandler);
try {
Mockito.when(clientRequestHandler.sendRequestWithRespond(new CommandWrapper(CustomerDefs.loginCommandSenderId, CommandDescriptor.ADD_PRODUCT_TO_GROCERY_LIST, Serialization.serialize(pp)).serialize())).thenReturn(new CommandWrapper(ResultDescriptor.SM_OK).serialize());
} catch (IOException ¢) {
fail();
}
try {
Mockito.when(clientRequestHandler.sendRequestWithRespond(new CommandWrapper(CustomerDefs.loginCommandSenderId, CommandDescriptor.VIEW_PRODUCT_FROM_CATALOG, Serialization.serialize(sc)).serialize())).thenReturn(new CommandWrapper(ResultDescriptor.SM_OK, Serialization.serialize(catalogProduct)).serialize());
} catch (IOException ¢) {
fail();
}
try {
customer.addProductToCart(sc, amount);
} catch (CriticalError | CustomerNotConnected | AmountBiggerThanAvailable | ProductPackageDoesNotExist | InvalidParameter e1) {
fail();
}
}
use of ClientServerApi.CommandWrapper in project SmartCity-Market by TechnionYP5777.
the class UpdateProductPicturesCustomerTest method updateIsNotNeededTest.
@Test
public void updateIsNotNeededTest() {
try {
LocalDate currentPicturesDate = PictureManager.getCurrentDate();
Mockito.when(clientRequestHandler.sendRequestWithRespond((new CommandWrapper(c.getId(), CommandDescriptor.UPDATE_PRODUCTS_PICTURES, Serialization.serialize(currentPicturesDate))).serialize())).thenReturn(new CommandWrapper(ResultDescriptor.SM_NO_UPDATE_NEEDED, Serialization.serialize(null)).serialize());
} catch (IOException ¢) {
fail();
}
try {
updateProductPicturesThread.start();
updateProductPicturesThread.join();
} catch (Exception e) {
System.out.println(e + "");
fail();
}
}
Aggregations