﻿/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />

/// <reference path="../jquery-1.2.6-vsdoc.js"/>

// Tests

SCOTT.CSC.Tools.GroceryList.Tests = function(){};

SCOTT.CSC.Tools.GroceryList.Tests.prototype =
{
    RunTests : function()
    {
        this.Test();
        this.Test2();
        this.Test3();
        this.Test4();
    },
    TestErrorHandler : function(exception, stackTrace)
    {
        alert('Error');
    },
    Test : function()
    {
        var __app = this;
        
        // Test to see what a list looks like
        var listHandler = function(data)
        {
            if (data && data.Name)
            {
                alert(data.Name);
                
                var onSave = function(success)
                {
                    if (success)
                    {
                        alert('Saved!');
                    }
                    else
                    {
                        alert('Unable to save!');
                    }
                };
                
                __app.GroceryListService.SaveGroceryList(data, onSave, __app.TestErrorHandler);
            }
        };
        
        this.GroceryListService.GetGroceryList(listHandler);
    },
    Test2 : function()
    {
        var __app = this;
        
        var handler = function(listItem)
        {
            alert(listItem.ID.Value);
        };

        var listItem = new SCOTT.CSC.Tools.GroceryList.ListItem();
        this.GroceryListService.TestListItem(listItem, handler);
    },
    Test3 : function()
    {
        var __app = this;
        
        var handler = function(listItems)
        {
            alert(listItems.length);
        };
        
        var listItems = [];
        listItems[0] = new SCOTT.CSC.Tools.GroceryList.ListItem();
        listItems[1] = new SCOTT.CSC.Tools.GroceryList.ListItem();
        listItems[2] = new SCOTT.CSC.Tools.GroceryList.ListItem();
        listItems[3] = new SCOTT.CSC.Tools.GroceryList.ListItem();
        
        this.GroceryListService.TestListItemCollection(listItems, handler);
    },
    Test4 : function()
    {
        var __app = this;
        
        var handler = function(list)
        {
            alert(list.Name);
        };
        
        var list = new SCOTT.CSC.Tools.GroceryList.List();
        list.Name = 'Test List';
        
        list.AddItem(new SCOTT.CSC.Tools.GroceryList.ListItem());
        list.AddItem(new SCOTT.CSC.Tools.GroceryList.ListItem());
        list.AddItem(new SCOTT.CSC.Tools.GroceryList.ListItem());
        list.AddItem(new SCOTT.CSC.Tools.GroceryList.ListItem());
        
        this.GroceryListService.TestList(list, handler);
    },
    TestCreateManyLists : function()
    {
        var __app = this;
        
        var onSuccess = function()
        {
            __app.LoadGroceryLists(function()
            {
                __app.UpdateMyLists();
            });
        };
        
        this.GroceryListService.TestCreateManyLists(10, 500, onSuccess);
    }
};

// Add Utility functions to Application
SCOTT.CSC.Extend(SCOTT.CSC.Tools.GroceryList.Application, 
    SCOTT.CSC.Tools.GroceryList.Tests);
