1 // ================================================================================================
3 // モックオブジェクト生成処理をまとめたファクトリークラスソース</summary>
5 // <copyright file="MockFactory.cs" company="honeplusのメモ帳">
6 // Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
9 // ================================================================================================
11 namespace Honememo.Wptscs.Models
14 using System.Collections.Generic;
16 using System.Xml.Serialization;
17 using Honememo.Wptscs.Websites;
20 /// モックオブジェクト生成処理をまとめたファクトリークラスです。
22 public class MockFactory
27 /// テスト用のconfig.xmlファイルパス。
29 public static readonly string TestConfigXml = "Data\\config.xml";
32 /// テストデータが格納されているフォルダパス。
34 public static readonly string TestMediaWikiDir = "Data\\MediaWiki";
43 private Config config;
50 /// テスト用のconfig.xmlを元に、モックファクトリーを生成する。
54 this.config = MockFactory.GetConfig(MockFactory.TestConfigXml);
62 /// ファイルからアプリケーションの設定を取得する。
64 /// <param name="file">設定ファイル名。</param>
65 /// <returns>作成したインスタンス。</returns>
66 public static Config GetConfig(string file)
69 using (Stream stream = new FileStream(file, FileMode.Open, FileAccess.Read))
71 return (Config)new XmlSerializer(typeof(Config)).Deserialize(stream);
82 /// <returns>作成したインスタンス。</returns>
83 public Config GetConfig()
89 /// 指定された言語のMediaWikiを取得する。
91 /// <param name="lang">言語コード。</param>
92 /// <returns>ウェブサイトの情報。</returns>
93 public MediaWiki GetMediaWiki(string lang)
95 Website site = this.config.GetWebsite(lang);
96 MediaWiki wiki = null;
99 wiki = site as MediaWiki;
104 wiki = new MediaWiki(new Language(lang));
108 // ※ フルパスじゃないとURIで取得できないので、ここで書き換える必要有り
109 UriBuilder b = new UriBuilder("file", String.Empty);
110 b.Path = Path.GetFullPath(MockFactory.TestMediaWikiDir) + "\\";
111 wiki.Location = new Uri(b.Uri, lang + "/").ToString();
112 wiki.ExportPath = "$1.xml";
113 wiki.MetaApi = "_api.xml";