<?php

// 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.


use Webmozart\Assert\Assert;

require_once dirname(__DIR__) . "/vendor/autoload.php";

{
    $mc = new Memcache();
    $mc->connect("127.0.0.1", 11211);

    $mc->set("foo", "Hello!");
    $mc->set("bar", "Memcached...");

    Assert::same($mc->get("foo"), 'Hello!');
    Assert::same($mc->get("bar"), "Memcached...");

    Assert::false($mc->get("not-exists"));
}

{
    $mc = memcache_connect("127.0.0.1", 11211);

    memcache_set($mc, "foo", "Hello!!");

    Assert::same(memcache_get($mc, "foo"), 'Hello!!');

    Assert::false(memcache_get($mc, "not-exists"));
}

echo "ok";
