// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "storage/browser/test/mock_blob_util.h"

#include <memory>

#include "storage/browser/blob/blob_data_builder.h"
#include "storage/browser/blob/blob_storage_context.h"

namespace storage {

ScopedTextBlob::ScopedTextBlob(BlobStorageContext* context,
                               const std::string& blob_id,
                               const std::string& data)
    : blob_id_(blob_id), context_(context) {
  DCHECK(context_);
  auto blob_builder = std::make_unique<BlobDataBuilder>(blob_id_);
  if (!data.empty())
    blob_builder->AppendData(data);
  handle_ = context_->AddFinishedBlob(std::move(blob_builder));
}

ScopedTextBlob::~ScopedTextBlob() = default;

std::unique_ptr<BlobDataHandle> ScopedTextBlob::GetBlobDataHandle() {
  return context_->GetBlobDataFromUUID(blob_id_);
}

}  // namespace storage