001    /*
002     * file CheckoutDemo.java
003     *
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM - you are allowed to copy, modify and 
006     * redistribute this file as part of any program that interfaces with 
007     * IBM Rational CM API.
008     *
009     * com.ibm.rational.stp.client.samples.CheckoutDemo
010     *
011     * (C) Copyright IBM Corporation 2007, 2008.  All Rights Reserved.
012     * Note to U.S. Government Users Restricted Rights:  Use, duplication or 
013     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp.
014     */
015    
016    package com.ibm.rational.stp.client.samples.cc;
017    
018    import javax.wvcm.PropertyRequestItem.PropertyRequest;
019    
020    import com.ibm.rational.wvcm.stp.cc.CcFile;
021    
022    /**
023     * Checkout a file in a web view.
024     * Demonstrates basic web view operations.
025     */
026    public class CheckoutDemo extends CcDemoBase {
027    
028        public void testSimpleCheckout() throws Exception {
029    
030            ViewHelper viewHelper = ViewHelper.getNonUcmViewHelper(this);
031    
032            // Create a version controlled file we can work with
033            CcFile demoFile = viewHelper.createDemoFile("CheckoutDemo.txt", true/*version controlled*/);
034    
035            // Fetch the demo file.
036            // This file should already exist, should be loaded in this web view,
037            // should be version controlled, and should be checked in.
038            // Verify that by reading the file's properties.
039            trace("Got demo file: " + demoFile.clientResourceFile());
040                    
041            PropertyRequest wantedProps = new PropertyRequest(
042                    CcFile.LOAD_STATE,
043                    CcFile.IS_VERSION_CONTROLLED,
044                    CcFile.IS_CHECKED_OUT);
045    
046            demoFile = (CcFile) demoFile.doReadProperties(wantedProps);
047            assertEquals(CcFile.LoadState.LOADED, demoFile.getLoadState());
048            assertTrue(demoFile.getIsVersionControlled());
049            assertFalse(demoFile.getIsCheckedOut());
050    
051            // Check out the demo file.
052            // As part of the checkout operation, ask for the file's checkout-related
053            // properties so we can verify that the operation succeeded.
054            trace("Checking out demo file: " + demoFile.clientResourceFile());
055            demoFile = (CcFile) demoFile.doCheckout(null, wantedProps);
056            assertTrue(demoFile.getIsCheckedOut());
057        }
058    }