/** * Licensed 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.aurora.scheduler.mesos; import java.nio.ByteBuffer; import java.util.UUID; import com.google.protobuf.ByteString; import org.apache.mesos.Protos; import org.junit.Test; import static org.apache.aurora.scheduler.mesos.ProtosConversion.convert; import static org.junit.Assert.assertEquals; public class ProtosConversionTest { @Test public void testOfferIDRoundTrip() { Protos.OfferID offerID = Protos.OfferID.newBuilder().setValue("offer-id").build(); assertEquals(offerID, convert(convert(offerID))); } @Test public void testOfferRoundTrip() { Protos.Offer offer = Protos.Offer.newBuilder() .setFrameworkId(Protos.FrameworkID.newBuilder().setValue("framework-id").build()) .setSlaveId(Protos.SlaveID.newBuilder().setValue("slave-id").build()) .setHostname("hostname") .setId(Protos.OfferID.newBuilder().setValue("offer-id").build()) .build(); assertEquals(offer, convert(convert(offer))); } @Test public void testTaskStatusRoundTrip() { assertEquals(getStatus(), convert(convert(getStatus()))); } @Test public void testTaskStatusConvertsAgentId() { Protos.TaskStatus status = getStatus(); assertEquals(status.getSlaveId().getValue(), convert(status).getAgentId().getValue()); } private Protos.TaskStatus getStatus() { UUID uuid = UUID.randomUUID(); ByteBuffer buf = ByteBuffer.allocate(16); buf.putLong(uuid.getMostSignificantBits()); buf.putLong(uuid.getLeastSignificantBits()); return Protos.TaskStatus.newBuilder() .setUuid(ByteString.copyFrom(buf)) .setTaskId( Protos.TaskID.newBuilder() .setValue("www-data-prod-hello-0-e3a2e294-a511-441c-a6bf-b8b4579029e7") .build()) .setState(Protos.TaskState.TASK_RUNNING) .setMessage("Reconciliation: Latest task state") .setSlaveId(Protos.SlaveID.newBuilder() .setValue("10718383-5b7b-450f-8581-865134b3920c-S0") .build()) .setTimestamp(1.4864285213798552E9) .build(); } }