You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/07/16 19:49:36 UTC

svn commit: r964881 [2/2] - in /tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf: ./ META-INF/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/tuscany/ src/main/java/org/apache/tuscany/...

Added: tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java?rev=964881&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java Fri Jul 16 17:49:35 2010
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.databinding.protobuf;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.databinding.TransformationContext;
+import org.apache.tuscany.sca.databinding.impl.TransformationContextImpl;
+import org.apache.tuscany.sca.interfacedef.DataType;
+import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
+import org.junit.Test;
+
+import com.example.tutorial.AddressBookProtos.AddressBook;
+import com.example.tutorial.AddressBookProtos.Person;
+
+/**
+ * 
+ */
+public class ProtobufTransformationTestCase {
+    @Test
+    public void testTransform() throws Exception {
+        Protobuf2OutputStream t1 = new Protobuf2OutputStream();
+        TransformationContext context = new TransformationContextImpl();
+        DataType dt1 = new DataTypeImpl(AddressBook.class, null);
+        context.setSourceDataType(dt1);
+
+        AddressBook addressBook =
+            AddressBook.newBuilder()
+                .addPerson(Person.newBuilder().setId(1).setEmail("abc@example.com").setName("John Smith").build())
+                .build();
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        t1.transform(addressBook, bos, context);
+
+        InputStream2Protobuf t2 = new InputStream2Protobuf();
+        context.setSourceDataType(null);
+        context.setTargetDataType(dt1);
+
+        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
+        AddressBook addressBook2 = (AddressBook)t2.transform(bis, context);
+        Assert.assertEquals(addressBook, addressBook2);
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/java/org/apache/tuscany/sca/databinding/protobuf/ProtobufTransformationTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/resources/addressbook.proto
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/resources/addressbook.proto?rev=964881&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/resources/addressbook.proto (added)
+++ tuscany/sca-java-2.x/trunk/contrib/modules/databinding-protobuf/src/test/resources/addressbook.proto Fri Jul 16 17:49:35 2010
@@ -0,0 +1,48 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+// 
+//   http://www.apache.org/licenses/LICENSE-2.0
+// 
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.    
+//
+// See README.txt for information and build instructions.
+
+package tutorial;
+
+option java_package = "com.example.tutorial";
+option java_outer_classname = "AddressBookProtos";
+
+message Person {
+  required string name = 1;
+  required int32 id = 2;        // Unique ID number for this person.
+  optional string email = 3;
+
+  enum PhoneType {
+    MOBILE = 0;
+    HOME = 1;
+    WORK = 2;
+  }
+
+  message PhoneNumber {
+    required string number = 1;
+    optional PhoneType type = 2 [default = HOME];
+  }
+
+  repeated PhoneNumber phone = 4;
+}
+
+// Our address book file is just one of these.
+message AddressBook {
+  repeated Person person = 1;
+}