Ejemplo n.º 1
0
int
rxkad_CreateChallenge(struct rx_securityClass *aobj,
                      struct rx_connection *aconn)
{
    struct rxkad_sconn *sconn = rx_GetSecurityData(aconn);
    struct rxkad_sprivate *tsp;

    sconn->challengeID = get_random_int32();
    sconn->authenticated = 0;	/* conn unauth. 'til we hear back */
    /* initialize level from object's minimum acceptable level */
    tsp = (struct rxkad_sprivate *)aobj->privateData;
    sconn->level = tsp->level;
    return 0;
}
    TEST_FIXTURE(file_directory_test_base, directory_list_files_and_directories_with_prefix)
    {
        m_directory.create_if_not_exists(azure::storage::file_access_condition(), azure::storage::file_request_options(), m_context);

        auto prefix = _XPLATSTR("t") + get_random_string(3);
        auto dir_prefix = prefix + _XPLATSTR("dir");
        auto file_prefix = prefix + _XPLATSTR("file");
        auto exclude_prefix = _XPLATSTR("exclude");

        std::vector<azure::storage::cloud_file_directory> directories;
        std::vector<azure::storage::cloud_file> files;
        for (int i = 0; i < get_random_int32() % 3 + 1; ++i)
        {
            auto subdirectory = m_directory.get_subdirectory_reference(dir_prefix + utility::conversions::print_string(i));
            subdirectory.create();
            directories.push_back(subdirectory);

            auto file = m_directory.get_file_reference(file_prefix + utility::conversions::print_string(i));
            file.create(1);
            files.push_back(file);

            m_directory.get_subdirectory_reference(exclude_prefix + utility::conversions::print_string(i)).create();
        }

        int num_items_expected = directories.size() + files.size();
        int num_items_actual = 0;
        for (auto&& item : m_directory.list_files_and_directories(prefix))
        {
            ++num_items_actual;
            if (item.is_directory())
            {
                auto actual = item.as_directory();
                CHECK(actual.get_parent_share_reference().is_valid());
                check_equal(m_share, actual.get_parent_share_reference());
                
                auto it_found = std::find_if(directories.begin(), directories.end(), [&actual](const azure::storage::cloud_file_directory& expect)
                {
                    return actual.name() == expect.name();
                });
                CHECK(it_found != directories.end());
                check_equal(*it_found, actual);
                directories.erase(it_found);
            }
            else if (item.is_file())
            {
                auto actual = item.as_file();
                CHECK(actual.get_parent_share_reference().is_valid());
                check_equal(m_share, actual.get_parent_share_reference());

                auto it_found = std::find_if(files.begin(), files.end(), [&actual](const azure::storage::cloud_file& expect)
                {
                    return actual.name() == expect.name();
                });
                CHECK(it_found != files.end());
                check_equal(*it_found, actual);
                files.erase(it_found);
            }
        }

        CHECK_EQUAL(num_items_expected, num_items_actual);
        CHECK(directories.empty());
        CHECK(files.empty());
    }