Test-Mimic

 view release on metacpan or  search on metacpan

lib/Test/Mimic.pm  view on Meta::CPAN

    # Prevent playback/recording conflicts.
    if ( $playback_stage && @to_record > 0 ) {
        die "The playback stage and the recording stage can not coincide. Either delete the current" .
            "recordings or stop mimicking the following package(s): @to_record";
    }

    # Record the missing packages.
    if ( @to_record != 0 ) {
        $recording_required = 1;
        require Test::Mimic::Recorder;
        my %recorder_prefs = %preferences;

        #Only include those packages that need recording.
        $recorder_prefs{'packages'} = {};
        for my $package (@to_record) {
            $recorder_prefs{'packages'}->{$package} = $preferences{'packages'}->{$package};
        }
        Test::Mimic::Recorder->import(\%recorder_prefs);
    }
}

# Handles the code generation after the recording is complete.
# NOTE: This relies on the LIFO structure of END block execution.
END {
    if ($recording_required) {
        my $generator = Test::Mimic::Generator->new();
        $generator->load($save_to);
        $generator->write($save_to);



( run in 0.591 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )