예제 #1
0
TEST_F(PBRPCURLTest, URLWithMultipleAddressesAndVolume) {
  // Build an URL to parse
  stringstream url_to_parse;
  ServerList::const_iterator servers_it = servers.begin();

  for (; servers_it != servers.end(); ++servers_it) {
    if(servers_it != servers.begin()) {
      url_to_parse << ',';
    }
    url_to_parse << *servers_it;
  }
  url_to_parse << '/' << volume_name;

  // Parse URL and get addresses
  pbrpc_url_->ParseURL(url_to_parse.str(), default_scheme, default_port);
  ServiceAddresses addresses = pbrpc_url_->GetAddresses();

  // Check expectations
  EXPECT_EQ(servers.size(), addresses.size());
  EXPECT_EQ(volume_name, pbrpc_url_->volume());
  EXPECT_EQ(default_scheme, pbrpc_url_->scheme());

  servers_it = servers.begin();
  stringstream expected_address;
  ServiceAddresses::Addresses services = addresses.GetAddresses();
  for(ServiceAddresses::Addresses::iterator it = services.begin();
      it != services.end();
      ++it, ++servers_it) {
    expected_address.str("");
    expected_address << *servers_it << ':' << default_port;
    EXPECT_EQ(expected_address.str(), *it);
  }
}
예제 #2
0
static void AddAddresses(const ServiceAddresses& service_addresses,
                         SimpleUUIDIterator* uuid_iterator) {
  ServiceAddresses::Addresses as_list = service_addresses.GetAddresses();
  for (ServiceAddresses::Addresses::const_iterator iter = as_list.begin();
       iter != as_list.end(); ++iter) {
    uuid_iterator->AddUUID(*iter);
  }
}