// ================================================================================================ // // AppConfigWebProxyのテストクラスソース。 // // // Copyright (C) 2012 Honeplus. All rights reserved. // // Honeplus // ================================================================================================ namespace Honememo.Wptscs.Utilities { using System; using System.IO; using Honememo.Wptscs.Properties; using Honememo.Wptscs.Utilities; using NUnit.Framework; /// /// のテストクラスです。 /// [TestFixture] class AppConfigWebProxyTest { #region 定数 /// /// テストデータが格納されているフォルダパス。 /// private static readonly string testFile = "Data\\config.xml"; #endregion #region インタフェース実装プロパティテストケース /// /// プロパティテストケース。 /// /// アプリ設定部分はアクセス権の関係上試験できず。 [Test] public void TestUserAgent() { IWebProxy proxy = new AppConfigWebProxy(); ////Settings.Default.UserAgent = String.Empty; // 初期状態ではアプリ名を元に生成した値 Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; ////Assert.AreEqual( //// String.Format(Settings.Default.DefaultUserAgent, ver.Major, ver.Minor), //// proxy.UserAgent); Assert.AreEqual( String.Format("Translation Support for Wikipedia/{0}.{1:D2}", ver.Major, ver.Minor), proxy.UserAgent); // プロパティ設定時はその値が返る proxy.UserAgent = "test property useragent"; Assert.AreEqual("test property useragent", proxy.UserAgent); // 空でも有効 proxy.UserAgent = String.Empty; Assert.IsEmpty(proxy.UserAgent); // nullなら無効 proxy.UserAgent = null; Assert.IsNotEmpty(proxy.UserAgent); // アプリ設定時はアプリに格納された設定値が最優先 ////Settings.Default.UserAgent = "test setting useragent"; ////Assert.AreEqual("test setting useragent", proxy.UserAgent); } /// /// プロパティテストケース。 /// /// アプリ設定部分はアクセス権の関係上試験できず。 [Test] public void TestReferer() { IWebProxy proxy = new AppConfigWebProxy(); ////Settings.Default.Referer = String.Empty; // 初期状態では空 Assert.IsEmpty(proxy.Referer); // プロパティ設定時はその値が返る proxy.Referer = "test property referer"; Assert.AreEqual("test property referer", proxy.Referer); // アプリ設定時はアプリに格納された設定値 ////Settings.Default.Referer = "test setting referer"; ////Assert.AreEqual("test setting referer", proxy.Referer); } #endregion #region インタフェース実装メソッドテストケース /// /// メソッドテストケース。 /// /// 内容的に難しいため、fileプロトコルのみ確認。 [Test] public void TestGetStream() { IWebProxy proxy = new AppConfigWebProxy(); // テストファイルを読んで例外が発生しなければOKとする UriBuilder b = new UriBuilder("file", String.Empty); b.Path = Path.GetFullPath(testFile); using (proxy.GetStream(b.Uri)) { } } #endregion } }