Search in sources :

Example 1 with BatchJobMutateRequest

use of com.google.api.ads.adwords.jaxws.utils.v201809.batchjob.BatchJobMutateRequest in project googleads-java-lib by googleads.

the class AxisSerializerTest method testSerialize.

@Test
public void testSerialize() throws SAXException, IOException {
    BatchJobMutateRequest mutate = new BatchJobMutateRequest();
    List<Operation> ops = Lists.newArrayList();
    Campaign campaign = new Campaign();
    campaign.setId(-1L);
    campaign.setName("Test campaign");
    campaign.setAdvertisingChannelType(AdvertisingChannelType.SEARCH);
    ops.add(new CampaignOperation(Operator.ADD, "ADD", campaign));
    AdGroup adGroup = new AdGroup();
    adGroup.setName("Test ad group");
    adGroup.setCampaignId(campaign.getId());
    ops.add(new AdGroupOperation(Operator.ADD, "ADD", adGroup));
    mutate.setOperations(ops.toArray(new Operation[0]));
    AxisSerializer serializer = new AxisSerializer();
    StringWriter writer = new StringWriter();
    SerializationContext context = new SerializationContext(writer);
    context.setSendDecl(true);
    context.setPretty(true);
    serializer.serialize(mutate, context);
    String serializedRequest = writer.toString();
    assertNotNull("Serialized request is null", serializedRequest);
    String expectedSerializedRequest = CharStreams.toString(new InputStreamReader(AxisSerializerTest.class.getResourceAsStream("resources/BatchJobMutate.request.xml"), UTF_8));
    Diff diff = DiffBuilder.compare(expectedSerializedRequest).withTest(serializedRequest).checkForSimilar().build();
    assertFalse("Serialized request does not match expected XML", diff.hasDifferences());
}
Also used : SerializationContext(org.apache.axis.encoding.SerializationContext) BatchJobMutateRequest(com.google.api.ads.adwords.axis.utils.v201809.batchjob.BatchJobMutateRequest) InputStreamReader(java.io.InputStreamReader) Diff(org.xmlunit.diff.Diff) CampaignOperation(com.google.api.ads.adwords.axis.v201809.cm.CampaignOperation) AdGroupOperation(com.google.api.ads.adwords.axis.v201809.cm.AdGroupOperation) CampaignOperation(com.google.api.ads.adwords.axis.v201809.cm.CampaignOperation) Operation(com.google.api.ads.adwords.axis.v201809.cm.Operation) AdGroup(com.google.api.ads.adwords.axis.v201809.cm.AdGroup) Campaign(com.google.api.ads.adwords.axis.v201809.cm.Campaign) StringWriter(java.io.StringWriter) AdGroupOperation(com.google.api.ads.adwords.axis.v201809.cm.AdGroupOperation) Test(org.junit.Test)

Example 2 with BatchJobMutateRequest

use of com.google.api.ads.adwords.jaxws.utils.v201809.batchjob.BatchJobMutateRequest in project googleads-java-lib by googleads.

the class JaxWsSerializationTest method testSerializeBatchJobMutateRequest.

@SuppressWarnings("cast")
@Test
public void testSerializeBatchJobMutateRequest() throws IOException, SAXException {
    BatchJobMutateRequest request = new BatchJobMutateRequest();
    CampaignOperation campaignOp = new CampaignOperation();
    campaignOp.setOperator(Operator.ADD);
    Campaign campaign = new Campaign();
    campaign.setId(-1L);
    campaign.setName("Test campaign");
    campaign.setAdvertisingChannelType(AdvertisingChannelType.SEARCH);
    campaignOp.setOperand(campaign);
    request.addOperation(campaignOp);
    AdGroupOperation adGroupOp = new AdGroupOperation();
    adGroupOp.setOperator(Operator.ADD);
    AdGroup adGroup = new AdGroup();
    adGroup.setName("Test ad group");
    adGroup.setCampaignId(campaign.getId());
    adGroupOp.setOperand(adGroup);
    request.addOperation(adGroupOp);
    JaxBSerializer<BatchJobMutateRequest> serializer = new JaxBSerializer<>(BatchJobMutateRequest.class, new QName("https://adwords.google.com/api/adwords/cm/v201809", "mutate"));
    String serializedRequest = serializer.serialize(request);
    assertNotNull("Null serialized request returned", serializedRequest);
    String expectedSerializedRequest = CharStreams.toString(new InputStreamReader(JaxWsSerializationTest.class.getResourceAsStream("resources/BatchJobMutate.request.xml"), UTF_8));
    // Perform XML diffs using the custom difference listener that properly handles namespaces
    // and attributes.
    Diff diff = DiffBuilder.compare(expectedSerializedRequest).withDifferenceEvaluator(DifferenceEvaluators.chain(DifferenceEvaluators.Default, new CustomDifferenceEvaluator())).withTest(serializedRequest).checkForSimilar().build();
    assertFalse("Serialized request does not match expected value", diff.hasDifferences());
    // Serialize again, this time without the XML declaration, and confirm the serialized XML
    // matches the expected string.
    serializedRequest = serializer.serialize(request, false);
    expectedSerializedRequest = expectedSerializedRequest.replaceFirst("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", "");
    diff = DiffBuilder.compare(expectedSerializedRequest).normalizeWhitespace().withDifferenceEvaluator(new CustomDifferenceEvaluator()).withTest(serializedRequest).checkForSimilar().build();
    assertFalse("Serialized request with XML declaration excluded does not match expected value", diff.hasDifferences());
}
Also used : CustomDifferenceEvaluator(com.google.api.ads.common.lib.soap.testing.CustomDifferenceEvaluator) BatchJobMutateRequest(com.google.api.ads.adwords.jaxws.utils.v201809.batchjob.BatchJobMutateRequest) Campaign(com.google.api.ads.adwords.jaxws.v201809.cm.Campaign) InputStreamReader(java.io.InputStreamReader) Diff(org.xmlunit.diff.Diff) QName(javax.xml.namespace.QName) CampaignOperation(com.google.api.ads.adwords.jaxws.v201809.cm.CampaignOperation) JaxBSerializer(com.google.api.ads.common.lib.soap.jaxb.JaxBSerializer) AdGroup(com.google.api.ads.adwords.jaxws.v201809.cm.AdGroup) AdGroupOperation(com.google.api.ads.adwords.jaxws.v201809.cm.AdGroupOperation) Test(org.junit.Test)

Aggregations

InputStreamReader (java.io.InputStreamReader)2 Test (org.junit.Test)2 Diff (org.xmlunit.diff.Diff)2 BatchJobMutateRequest (com.google.api.ads.adwords.axis.utils.v201809.batchjob.BatchJobMutateRequest)1 AdGroup (com.google.api.ads.adwords.axis.v201809.cm.AdGroup)1 AdGroupOperation (com.google.api.ads.adwords.axis.v201809.cm.AdGroupOperation)1 Campaign (com.google.api.ads.adwords.axis.v201809.cm.Campaign)1 CampaignOperation (com.google.api.ads.adwords.axis.v201809.cm.CampaignOperation)1 Operation (com.google.api.ads.adwords.axis.v201809.cm.Operation)1 BatchJobMutateRequest (com.google.api.ads.adwords.jaxws.utils.v201809.batchjob.BatchJobMutateRequest)1 AdGroup (com.google.api.ads.adwords.jaxws.v201809.cm.AdGroup)1 AdGroupOperation (com.google.api.ads.adwords.jaxws.v201809.cm.AdGroupOperation)1 Campaign (com.google.api.ads.adwords.jaxws.v201809.cm.Campaign)1 CampaignOperation (com.google.api.ads.adwords.jaxws.v201809.cm.CampaignOperation)1 JaxBSerializer (com.google.api.ads.common.lib.soap.jaxb.JaxBSerializer)1 CustomDifferenceEvaluator (com.google.api.ads.common.lib.soap.testing.CustomDifferenceEvaluator)1 StringWriter (java.io.StringWriter)1 QName (javax.xml.namespace.QName)1 SerializationContext (org.apache.axis.encoding.SerializationContext)1