// OpenTween - Client of Twitter // Copyright (c) 2013 kim_upsilon (@kim_upsilon) // All rights reserved. // // This file is part of OpenTween. // // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 3 of the License, or (at your option) // any later version. // // This program is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License // for more details. // // You should have received a copy of the GNU General Public License along // with this program. If not, see , or write to // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, // Boston, MA 02110-1301, USA. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml.Serialization; using Xunit; using Xunit.Extensions; namespace OpenTween { /// /// FiltersClass -> PostFilterRule クラスへの変更で v1.1.2 までの /// 設定ファイルと互換性が保たれているかどうかを確認するテスト /// public class PostFilterRuleVersion113DeserializeTest { // OpenTween v1.1.2 時点の FiltersClass クラス public sealed class FiltersClass { public string NameFilter { get; set; } public string ExNameFilter { get; set; } public string[] BodyFilterArray { get; set; } public string[] ExBodyFilterArray { get; set; } public bool SearchBoth { get; set; } public bool ExSearchBoth { get; set; } public bool MoveFrom { get; set; } public bool SetMark { get; set; } public bool SearchUrl { get; set; } public bool ExSearchUrl { get; set; } public bool CaseSensitive { get; set; } public bool ExCaseSensitive { get; set; } public bool UseLambda { get; set; } public bool ExUseLambda { get; set; } public bool UseRegex { get; set; } public bool ExUseRegex { get; set; } public bool IsRt { get; set; } public bool IsExRt { get; set; } public string Source { get; set; } public string ExSource { get; set; } } [Fact] public void DeserializeTest() { var oldVersion = new FiltersClass { NameFilter = "name", ExNameFilter = "exname", BodyFilterArray = new[] { "body1", "body2" }, ExBodyFilterArray = new[] { "exbody1", "exbody2" }, SearchBoth = true, ExSearchBoth = true, MoveFrom = true, SetMark = true, SearchUrl = true, ExSearchUrl = true, CaseSensitive = true, ExCaseSensitive = true, UseLambda = true, ExUseLambda = true, UseRegex = true, ExUseRegex = true, IsRt = true, IsExRt = true, Source = "source", ExSource = "exsource", }; PostFilterRule newVersion; using (var stream = new MemoryStream()) { var oldSerializer = new XmlSerializer(typeof(FiltersClass)); oldSerializer.Serialize(stream, oldVersion); stream.Seek(0, SeekOrigin.Begin); var newSerializer = new XmlSerializer(typeof(PostFilterRule)); newVersion = (PostFilterRule)newSerializer.Deserialize(stream); } Assert.Equal(oldVersion.NameFilter, newVersion.FilterName); Assert.Equal(oldVersion.ExNameFilter, newVersion.ExFilterName); Assert.Equal(oldVersion.BodyFilterArray, newVersion.FilterBody); Assert.Equal(oldVersion.ExBodyFilterArray, newVersion.ExFilterBody); Assert.Equal(oldVersion.SearchBoth, newVersion.UseNameField); Assert.Equal(oldVersion.ExSearchBoth, newVersion.ExUseNameField); Assert.Equal(oldVersion.MoveFrom, newVersion.MoveMatches); Assert.Equal(oldVersion.SetMark, newVersion.MarkMatches); Assert.Equal(oldVersion.SearchUrl, newVersion.FilterByUrl); Assert.Equal(oldVersion.ExSearchUrl, newVersion.ExFilterByUrl); Assert.Equal(oldVersion.CaseSensitive, newVersion.CaseSensitive); Assert.Equal(oldVersion.ExCaseSensitive, newVersion.ExCaseSensitive); Assert.Equal(oldVersion.UseLambda, newVersion.UseLambda); Assert.Equal(oldVersion.ExUseLambda, newVersion.ExUseLambda); Assert.Equal(oldVersion.UseRegex, newVersion.UseRegex); Assert.Equal(oldVersion.ExUseRegex, newVersion.ExUseRegex); Assert.Equal(oldVersion.IsRt, newVersion.FilterRt); Assert.Equal(oldVersion.IsExRt, newVersion.ExFilterRt); Assert.Equal(oldVersion.Source, newVersion.FilterSource); Assert.Equal(oldVersion.ExSource, newVersion.ExFilterSource); } } }