// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library test.peridot.tests.componentcontext;

// An interface implemented by component_context_test_one_agent.cc which the
// root module uses.
//
// Cf. README.md for what this test does and how.
[Discoverable]
interface ComponentContextTestService {
    // Send |message_to_send| to the message queue backed by
    // |message_queue_token|.
    1: SendToMessageQueue(string message_queue_token, string message_to_send);
};
