|
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="SaveFileService.cs" company="Catel development team">
// Copyright (c) 2008 - 2011 Catel development team. All rights reserved.
// </copyright>
// <summary>
// Test implementation of the <see cref="ISaveFileService"/>.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using Catel.Windows.Properties;
namespace Catel.MVVM.Services.Test
{
/// <summary>
/// Test implementation of the <see cref="ISaveFileService"/>.
/// </summary>
/// <example>
/// <code>
/// <![CDATA[
///
/// Test.SaveFileService service = (Test.SaveFileService)GetService<ISaveFileService>();
///
/// // Queue the next expected result
/// service.ExpectedResults.Add(() =>
/// {
/// service.FileName = @"c:\test.txt";
/// return true;
/// });
///
/// ]]>
/// </code>
/// </example>
public class SaveFileService : ISaveFileService
{
#region Constructor & destructor
/// <summary>
/// Initializes a new instance of the <see cref="OpenFileService"/> class.
/// </summary>
public SaveFileService()
{
ExpectedResults = new Queue<Func<bool>>();
}
#endregion
#region Properties
/// <summary>
/// Gets the queue of expected results.
/// </summary>
/// <value>The expected results.</value>
public Queue<Func<bool>> ExpectedResults { get; private set; }
/// <summary>
/// Gets or sets the name of the file.
/// </summary>
/// <value>The name of the file.</value>
public string FileName { get; set; }
/// <summary>
/// Gets or sets the filter to use when opening or saving the file.
/// </summary>
/// <value>The filter.</value>
public string Filter { get; set; }
/// <summary>
/// Gets or sets the initial directory.
/// </summary>
/// <value>The initial directory.</value>
public string InitialDirectory { get; set; }
#endregion
#region Methods
/// <summary>
/// Determines the filename of the file what will be used.
/// </summary>
/// <returns>
/// <c>true</c> if a file is selected; otherwise <c>false</c>.
/// </returns>
/// <remarks>
/// If this method returns <c>true</c>, the <see cref="FileName"/> property will be filled with the filename. Otherwise,
/// no changes will occur to the data of this object.
/// </remarks>
public bool DetermineFile()
{
if (ExpectedResults.Count == 0)
{
throw new Exception(Exceptions.NoExpectedResultsInQueueForUnitTest);
}
return ExpectedResults.Dequeue().Invoke();
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.