banshee r3931 - in trunk/banshee: . build src/Core/Banshee.Core src/Core/Banshee.Core/Banshee.Base/Tests src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests src/Core/Banshee.Services/Banshee.SmartPlaylist/Tests src/Core/Banshee.Widgets src/Libraries/Hyena src/Libraries/Hyena.Gui src/Libraries/Hyena/Hyena.Collections/Tests src/Libraries/Hyena/Hyena.Data.Sqlite/Tests src/Libraries/Hyena/Hyena.Query/Tests src/Libraries/Hyena/Hyena/Tests src/Libraries/Migo src/Libraries/Migo/Migo/Migo.Syndication/Tests src/Libraries/Mono.Media src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests tests tests/Banshee.Core tests/Banshee.Services tests/Banshee.Services/Xspf tests/Banshee.ThickClient tests/Hyena tests/Migo tests/Mono.Media tests/Mono.Media/Xspf
- From: abock svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r3931 - in trunk/banshee: . build src/Core/Banshee.Core src/Core/Banshee.Core/Banshee.Base/Tests src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests src/Core/Banshee.Services/Banshee.SmartPlaylist/Tests src/Core/Banshee.Widgets src/Libraries/Hyena src/Libraries/Hyena.Gui src/Libraries/Hyena/Hyena.Collections/Tests src/Libraries/Hyena/Hyena.Data.Sqlite/Tests src/Libraries/Hyena/Hyena.Query/Tests src/Libraries/Hyena/Hyena/Tests src/Libraries/Migo src/Libraries/Migo/Migo/Migo.Syndication/Tests src/Libraries/Mono.Media src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests tests tests/Banshee.Core tests/Banshee.Services tests/Banshee.Services/Xspf tests/Banshee.ThickClient tests/Hyena tests/Migo tests/Mono.Media tests/Mono.Media/Xspf
- Date: Mon, 19 May 2008 21:34:46 +0000 (UTC)
Author: abock
Date: Mon May 19 21:34:45 2008
New Revision: 3931
URL: http://svn.gnome.org/viewvc/banshee?rev=3931&view=rev
Log:
2008-05-19 Aaron Bockover <abock gnome org>
* build/build.rules.mk: Set ENABLE_TESTS as a define variable; this will
allow unit tests to be compiled in only if Nunit is available and we are
not building a release
* Tons of files: Surgery to move unit tests into the proper assemblies
instead of one big test assembly hack job thing; some stuff is still
broken and incomplete
Added:
trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/
trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/FileNamePatternTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Banshee.Core/FileNamePatternTests.cs
trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Banshee.Core/TaglibReadWriteTests.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests/
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs
- copied unchanged from r3928, /trunk/banshee/tests/Banshee.Services/PlaylistFormatTests.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/Tests/
trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/Tests/SmartPlaylistTests.cs
- copied unchanged from r3928, /trunk/banshee/tests/Banshee.Services/SmartPlaylistTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/
trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/IntervalHeapTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Banshee.Core/KernelTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/RangeCollectionTests.cs
- copied, changed from r3930, /trunk/banshee/tests/Hyena/RangeCollectionTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/
trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/DbBoundType.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/DbBoundType.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/SqliteCommandTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/SqliteModelProviderTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena.Query/Tests/
trunk/banshee/src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/QueryTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena/Tests/
trunk/banshee/src/Libraries/Hyena/Hyena/Tests/CryptoUtilTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/CryptoUtilTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Hyena/StringUtilTests.cs
trunk/banshee/src/Libraries/Hyena/Hyena/Tests/TestBase.cs
trunk/banshee/src/Libraries/Migo/Migo/Migo.Syndication/Tests/
trunk/banshee/src/Libraries/Migo/Migo/Migo.Syndication/Tests/XmlTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Migo/XmlTests.cs
trunk/banshee/src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests/
trunk/banshee/src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests/XspfTests.cs
- copied, changed from r3928, /trunk/banshee/tests/Banshee.Services/Xspf/Xspf.cs
trunk/banshee/tests/GuiTests.cs
- copied unchanged from r3928, /trunk/banshee/tests/Banshee.ThickClient/GuiTests.cs
trunk/banshee/tests/Mono.Media/
trunk/banshee/tests/Mono.Media/Xspf/
trunk/banshee/tests/Mono.Media/Xspf/complete.xml
- copied unchanged from r3928, /trunk/banshee/tests/Banshee.Services/Xspf/complete.xml
trunk/banshee/tests/Mono.Media/Xspf/xspf-1.xsd
- copied unchanged from r3928, /trunk/banshee/tests/Banshee.Services/Xspf/xspf-1.xsd
Removed:
trunk/banshee/tests/Banshee.Core/FileNamePatternTests.cs
trunk/banshee/tests/Banshee.Core/KernelTests.cs
trunk/banshee/tests/Banshee.Core/TaglibReadWriteTests.cs
trunk/banshee/tests/Banshee.Services/PlaylistFormatTests.cs
trunk/banshee/tests/Banshee.Services/SmartPlaylistTests.cs
trunk/banshee/tests/Banshee.Services/Xspf/
trunk/banshee/tests/Banshee.ThickClient/GuiTests.cs
trunk/banshee/tests/Hyena/
trunk/banshee/tests/Migo/
Modified:
trunk/banshee/Banshee.mds
trunk/banshee/ChangeLog
trunk/banshee/build/build.rules.mk
trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp
trunk/banshee/src/Core/Banshee.Core/Makefile.am
trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
trunk/banshee/src/Core/Banshee.Services/Makefile.am
trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets.mdp
trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp
trunk/banshee/src/Libraries/Hyena/Hyena.mdp
trunk/banshee/src/Libraries/Hyena/Makefile.am
trunk/banshee/src/Libraries/Migo/Makefile.am
trunk/banshee/src/Libraries/Migo/Migo.mdp
trunk/banshee/src/Libraries/Mono.Media/Mono.Media.mdp
Modified: trunk/banshee/Banshee.mds
==============================================================================
--- trunk/banshee/Banshee.mds (original)
+++ trunk/banshee/Banshee.mds Mon May 19 21:34:45 2008
@@ -4,15 +4,18 @@
<Entry build="True" name="Banshee" configuration="Debug" />
<Entry build="True" configuration="Default" />
<Entry build="True" name="libbanshee" configuration="Debug" />
+ <Entry build="True" name="tests" configuration="Default" />
</Configuration>
</Configurations>
<StartMode startupentry="Banshee" single="True">
<Execute type="None" entry="Banshee" />
<Execute type="None" entry="tests" />
<Execute type="None" entry="libbanshee" />
+ <Execute type="None" entry="tests" />
</StartMode>
<Entries>
<Entry filename="src/Banshee.mds" />
<Entry filename="libbanshee/libbanshee.mdp" />
+ <Entry filename="tests/tests.md-nunit" />
</Entries>
</Combine>
\ No newline at end of file
Modified: trunk/banshee/build/build.rules.mk
==============================================================================
--- trunk/banshee/build/build.rules.mk (original)
+++ trunk/banshee/build/build.rules.mk Mon May 19 21:34:45 2008
@@ -17,6 +17,11 @@
INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+if ENABLE_TESTS
+ LINK += " $(MONO_NUNIT_LIBS)"
+ ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+endif
+
FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
@@ -46,7 +51,7 @@
test "x$$colors" = "xyes" && \
echo -e "\033[1mCompiling $(notdir $@)...\033[0m" || \
echo "Compiling $(notdir $@)...";
- @test "x$(DEVEL_BUILD)" = "xyes" && warn="-warnaserror"; $(BUILD) -target:$(TARGET) -out:$@ $$warn -define:HAVE_GTK_2_10 -define:NET_2_0 $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @test "x$(DEVEL_BUILD)" = "xyes" && warn="-warnaserror"; $(BUILD) -target:$(TARGET) -out:$@ $$warn -define:HAVE_GTK_2_10 -define:NET_2_0 $(ENABLE_TESTS_FLAG) $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
@if [ -e $(notdir $ config) ]; then \
cp $(notdir $ config) $(top_builddir)/bin; \
fi;
Copied: trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/FileNamePatternTests.cs (from r3928, /trunk/banshee/tests/Banshee.Core/FileNamePatternTests.cs)
==============================================================================
--- /trunk/banshee/tests/Banshee.Core/FileNamePatternTests.cs (original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/FileNamePatternTests.cs Mon May 19 21:34:45 2008
@@ -26,42 +26,48 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using NUnit.Framework;
using Banshee.Base;
using Banshee.Collection;
-[TestFixture]
-public class FileNamePatternTest
+namespace Banshee.Base.Tests
{
- private static string ZeroPad(int num)
- {
- string str = Convert.ToString(num);
- return num < 10 ? "0" + str : str;
- }
-
- [Test]
- public void CreateFromTrackInfo()
- {
- SampleTrackInfo track = new SampleTrackInfo();
- string built = FileNamePattern.CreateFromTrackInfo(
- "%artist%:%album%:%title%:%track_number%:" +
- "%track_count%:%track_number_nz%:%track_count_nz%",
- track);
-
- Assert.AreEqual(String.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}",
- track.ArtistName, track.AlbumTitle, track.TrackTitle,
- ZeroPad(track.TrackNumber), ZeroPad(track.TrackCount),
- track.TrackNumber, track.TrackCount),
- built);
- }
-
- [Test]
- public void Escape()
+ [TestFixture]
+ public class FileNamePatternTest
{
- Assert.AreEqual("_ _ _ _ _ _ _",
- FileNamePattern.Escape("/ \\ $ % ? * :"));
+ private static string ZeroPad(int num)
+ {
+ string str = Convert.ToString(num);
+ return num < 10 ? "0" + str : str;
+ }
+
+ [Test]
+ public void CreateFromTrackInfo()
+ {
+ SampleTrackInfo track = new SampleTrackInfo();
+ string built = FileNamePattern.CreateFromTrackInfo(
+ "%artist%:%album%:%title%:%track_number%:" +
+ "%track_count%:%track_number_nz%:%track_count_nz%",
+ track);
+
+ Assert.AreEqual(String.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}",
+ track.ArtistName, track.AlbumTitle, track.TrackTitle,
+ ZeroPad(track.TrackNumber), ZeroPad(track.TrackCount),
+ track.TrackNumber, track.TrackCount),
+ built);
+ }
+
+ [Test]
+ public void Escape()
+ {
+ Assert.AreEqual("_ _ _ _ _ _ _",
+ FileNamePattern.Escape("/ \\ $ % ? * :"));
+ }
}
}
+#endif
Copied: trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs (from r3928, /trunk/banshee/tests/Banshee.Core/TaglibReadWriteTests.cs)
==============================================================================
--- /trunk/banshee/tests/Banshee.Core/TaglibReadWriteTests.cs (original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Tests/TaglibReadWriteTests.cs Mon May 19 21:34:45 2008
@@ -26,7 +26,10 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
+using System.Reflection;
using NUnit.Framework;
using Banshee.Base;
@@ -34,98 +37,116 @@
using Banshee.Streaming;
using Banshee.Configuration.Schema;
-[TestFixture]
-public class TaglibReadWriteTests : BansheeTests
-{
- static string [] files;
-
- static TaglibReadWriteTests () {
- files = new string [] {
- Pwd + "/../tests/data/test.mp3",
- };
- }
-
- [Test]
- public void TestSystemIO ()
- {
- Banshee.IO.Provider.SetProvider (new Banshee.IO.SystemIO.Provider ());
- WriteMetadata (files, "My Genre");
- }
-
- [Test]
- public void TestUnixIO ()
- {
- Banshee.IO.Provider.SetProvider (new Banshee.IO.Unix.Provider ());
- WriteMetadata (files, "My Genre");
- }
+using Hyena.Tests;
- [Test]
- public void TestNullGenreBug ()
- {
- // Bug in taglib-sharp-2.0.3.0: Crash if you send it a genre of "{ null }" on
- // a song with both ID3v1 and ID3v2 metadata. It's happy with "{}", though.
- // (see http://forum.taglib-sharp.com/viewtopic.php?f=5&t=239 )
- // This tests our workaround.
- Banshee.IO.Provider.SetProvider (new Banshee.IO.Unix.Provider ());
- WriteMetadata (files, null);
- }
-
- private static void WriteMetadata (string [] files, string genre)
+namespace Banshee.Base.Tests
+{
+ // FIXME: These tests don't really belong here
+
+ [TestFixture]
+ public class TaglibReadWriteTests : TestBase
{
- SafeUri newuri = null;
- bool write_metadata = LibrarySchema.WriteMetadata.Get();
- LibrarySchema.WriteMetadata.Set (true);
- try {
- AssertForEach<string> (files, delegate (string uri) {
- string extension = System.IO.Path.GetExtension (uri);
- newuri = new SafeUri (Pwd + "/../tests/data/test_write." + extension);
-
- Banshee.IO.File.Copy (new SafeUri (uri), newuri, true);
-
- ChangeAndVerify (newuri, genre);
- });
- } finally {
- LibrarySchema.WriteMetadata.Set (write_metadata);
- if (newuri != null)
- Banshee.IO.File.Delete (newuri);
+ private string [] files;
+
+ [TestFixtureSetUp]
+ public void Setup ()
+ {
+ files = new string [] {
+ BinDir + "/../tests/data/test.mp3",
+ };
+ }
+
+ [Test]
+ public void TestSystemIO ()
+ {
+ Banshee.IO.Provider.SetProvider (new Banshee.IO.SystemIO.Provider ());
+ WriteMetadata (files, "My Genre");
+ }
+
+ [Test]
+ public void TestUnixIO ()
+ {
+ Banshee.IO.Provider.SetProvider (CreateUnixIOProvider ());
+ WriteMetadata (files, "My Genre");
+ }
+
+ [Test]
+ public void TestNullGenreBug ()
+ {
+ // Bug in taglib-sharp-2.0.3.0: Crash if you send it a genre of "{ null }" on
+ // a song with both ID3v1 and ID3v2 metadata. It's happy with "{}", though.
+ // (see http://forum.taglib-sharp.com/viewtopic.php?f=5&t=239 )
+ // This tests our workaround.
+ Banshee.IO.Provider.SetProvider (CreateUnixIOProvider ());
+ WriteMetadata (files, null);
+ }
+
+ private void WriteMetadata (string [] files, string genre)
+ {
+ SafeUri newuri = null;
+ bool write_metadata = LibrarySchema.WriteMetadata.Get();
+ LibrarySchema.WriteMetadata.Set (true);
+ try {
+ AssertForEach<string> (files, delegate (string uri) {
+ string extension = System.IO.Path.GetExtension (uri);
+ newuri = new SafeUri (BinDir + "/../tests/data/test_write." + extension);
+
+ Banshee.IO.File.Copy (new SafeUri (uri), newuri, true);
+
+ ChangeAndVerify (newuri, genre);
+ });
+ } finally {
+ LibrarySchema.WriteMetadata.Set (write_metadata);
+ if (newuri != null)
+ Banshee.IO.File.Delete (newuri);
+ }
+ }
+
+ private void ChangeAndVerify (SafeUri uri, string genre)
+ {
+ TagLib.File file = StreamTagger.ProcessUri (uri);
+ TrackInfo track = new TrackInfo ();
+ StreamTagger.TrackInfoMerge (track, file);
+
+ // Make changes
+ track.TrackTitle = "My Title";
+ track.ArtistName = "My Artist";
+ track.AlbumTitle = "My Album";
+ track.Genre = genre;
+ track.TrackNumber = 4;
+ track.Disc = 4;
+ track.Year = 1999;
+
+ // Save changes
+ new SaveTrackMetadataJob (track).Run ();
+
+ // Read changes
+ file = StreamTagger.ProcessUri (uri);
+ track = new TrackInfo ();
+ StreamTagger.TrackInfoMerge (track, file);
+
+ // Verify changes
+ Assert.AreEqual ("My Title", track.TrackTitle);
+ Assert.AreEqual ("My Artist", track.ArtistName);
+ Assert.AreEqual ("My Album", track.AlbumTitle);
+ Assert.AreEqual (genre, track.Genre);
+ Assert.AreEqual (4, track.TrackNumber);
+ Assert.AreEqual (4, track.Disc);
+ Assert.AreEqual (1999, track.Year);
+ }
+
+ private Type unix_io_type;
+
+ private Banshee.IO.IProvider CreateUnixIOProvider ()
+ {
+ if (unix_io_type == null) {
+ Assembly asm = Assembly.LoadFrom (BinDir + "/Banshee.Unix.dll");
+ unix_io_type = asm.GetType ("Banshee.IO.Unix.Provider");
+ }
+
+ return (Banshee.IO.IProvider)Activator.CreateInstance (unix_io_type);
}
}
-
-#region Utility methods
-
- private static void ChangeAndVerify (SafeUri uri, string genre)
- {
- TagLib.File file = StreamTagger.ProcessUri (uri);
- TrackInfo track = new TrackInfo ();
- StreamTagger.TrackInfoMerge (track, file);
-
- // Make changes
- track.TrackTitle = "My Title";
- track.ArtistName = "My Artist";
- track.AlbumTitle = "My Album";
- track.Genre = genre;
- track.TrackNumber = 4;
- track.Disc = 4;
- track.Year = 1999;
-
- // Save changes
- new SaveTrackMetadataJob (track).Run ();
-
- // Read changes
- file = StreamTagger.ProcessUri (uri);
- track = new TrackInfo ();
- StreamTagger.TrackInfoMerge (track, file);
-
- // Verify changes
- Assert.AreEqual ("My Title", track.TrackTitle);
- Assert.AreEqual ("My Artist", track.ArtistName);
- Assert.AreEqual ("My Album", track.AlbumTitle);
- Assert.AreEqual (genre, track.Genre);
- Assert.AreEqual (4, track.TrackNumber);
- Assert.AreEqual (4, track.Disc);
- Assert.AreEqual (1999, track.Year);
- }
-
-#endregion
-
}
+
+#endif
\ No newline at end of file
Modified: trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp (original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Core.mdp Mon May 19 21:34:45 2008
@@ -67,6 +67,9 @@
<File name="Banshee.Core.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
<File name="Banshee.Collection/TrackMediaAttributes.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Base/XdgBaseDirectorySpec.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Base/Tests" subtype="Directory" buildaction="Compile" />
+ <File name="Banshee.Base/Tests/FileNamePatternTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Base/Tests/TaglibReadWriteTests.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Project" localcopy="False" refto="Hyena" />
Modified: trunk/banshee/src/Core/Banshee.Core/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Makefile.am (original)
+++ trunk/banshee/src/Core/Banshee.Core/Makefile.am Mon May 19 21:34:45 2008
@@ -12,6 +12,8 @@
Banshee.Base/ProductInformation.cs \
Banshee.Base/Resource.cs \
Banshee.Base/SafeUri.cs \
+ Banshee.Base/Tests/FileNamePatternTests.cs \
+ Banshee.Base/Tests/TaglibReadWriteTests.cs \
Banshee.Base/UriList.cs \
Banshee.Base/XdgBaseDirectorySpec.cs \
Banshee.Collection/AlbumInfo.cs \
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp Mon May 19 21:34:45 2008
@@ -169,6 +169,9 @@
<File name="Banshee.SmartPlaylist/SmartPlaylistDefinition.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Collection.Database/DatabaseBrowsableListModel.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Collection/BrowsableListModel.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Playlists.Formats/Tests" subtype="Directory" buildaction="Compile" />
+ <File name="Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.SmartPlaylist/Tests" subtype="Directory" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Modified: trunk/banshee/src/Core/Banshee.Services/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Makefile.am (original)
+++ trunk/banshee/src/Core/Banshee.Services/Makefile.am Mon May 19 21:34:45 2008
@@ -106,6 +106,7 @@
Banshee.Playlists.Formats/PlaylistFormatDescription.cs \
Banshee.Playlists.Formats/PlaylistParser.cs \
Banshee.Playlists.Formats/PlsPlaylistFormat.cs \
+ Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs \
Banshee.Preferences/Collection.cs \
Banshee.Preferences/Page.cs \
Banshee.Preferences/Preference.cs \
Modified: trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets.mdp (original)
+++ trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets.mdp Mon May 19 21:34:45 2008
@@ -27,7 +27,6 @@
<File name="Banshee.Widgets/CustomActionProxy.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Widgets/RatingActionProxy.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Widgets/MenuTile.cs" subtype="Code" buildaction="Compile" />
- <File name="Resources" subtype="Directory" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp (original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp Mon May 19 21:34:45 2008
@@ -82,7 +82,6 @@
<File name="Hyena.Widgets/RatingMenuItem.cs" subtype="Code" buildaction="Compile" />
<File name="Hyena.Widgets/ComplexMenuItem.cs" subtype="Code" buildaction="Compile" />
<File name="Hyena.Gui/RatingRenderer.cs" subtype="Code" buildaction="Compile" />
- <File name="Resources" subtype="Directory" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/IntervalHeapTests.cs (from r3928, /trunk/banshee/tests/Banshee.Core/KernelTests.cs)
==============================================================================
--- /trunk/banshee/tests/Banshee.Core/KernelTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/IntervalHeapTests.cs Mon May 19 21:34:45 2008
@@ -1,5 +1,5 @@
//
-// KernelTests.cs
+// IntervalHeapTests.cs
//
// Author:
// Aaron Bockover <abockover novell com>
@@ -26,98 +26,101 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using NUnit.Framework;
-using Banshee.Kernel;
+using Hyena.Collections;
-namespace Banshee.Kernel.Tests
+namespace Hyena.Collections.Tests
{
- [TestFixture]
- public class IntervalHeapTest
- {
- private IntervalHeap<int> heap;
- private static int [] heap_data = new int[2048];
-
- [TestFixtureSetUp]
- public void Init()
- {
- heap = new IntervalHeap<int>();
- for(int i = 0; i < heap_data.Length; i++) {
- heap_data[i] = i;
- }
- }
-
- private void PopulateHeap()
- {
- heap.Clear();
-
- foreach(int i in heap_data) {
- heap.Push(i, 0);
- }
-
- Assert.AreEqual(heap.Count, heap_data.Length);
- }
-
- [Test]
- public void PopHeap()
- {
- PopulateHeap();
-
- int i = 0;
- while(heap.Count > 0) {
- heap.Pop();
- i++;
- }
-
- Assert.AreEqual(i, heap_data.Length);
- }
-
- [Test]
- public void IterateHeap()
- {
- PopulateHeap();
-
- int i = 0;
- foreach(int x in heap) {
- Assert.AreEqual(x, heap_data[i++]);
- }
-
- Assert.AreEqual(i, heap.Count);
- }
-
- [Test]
- public void RemoveItemsFromHeap()
- {
- IntervalHeap<int> h = new IntervalHeap<int>();
- for(int i = 0; i < 20; i++) {
- h.Push(i, i);
- }
-
- h.Remove(10);
- h.Remove(2);
- h.Remove(11);
- h.Remove(9);
- h.Remove(19);
- h.Remove(0);
-
- Assert.AreEqual(h.Pop(), 18);
- Assert.AreEqual(h.Pop(), 17);
- Assert.AreEqual(h.Pop(), 16);
- Assert.AreEqual(h.Pop(), 15);
- Assert.AreEqual(h.Pop(), 14);
- Assert.AreEqual(h.Pop(), 13);
- Assert.AreEqual(h.Pop(), 12);
- Assert.AreEqual(h.Pop(), 8);
- Assert.AreEqual(h.Pop(), 7);
- Assert.AreEqual(h.Pop(), 6);
- Assert.AreEqual(h.Pop(), 5);
- Assert.AreEqual(h.Pop(), 4);
- Assert.AreEqual(h.Pop(), 3);
- Assert.AreEqual(h.Pop(), 1);
-
- Assert.AreEqual(h.Count, 0);
- }
- }
+ [TestFixture]
+ public class IntervalHeapTests
+ {
+ private IntervalHeap<int> heap;
+ private static int [] heap_data = new int[2048];
+
+ [TestFixtureSetUp]
+ public void Init()
+ {
+ heap = new IntervalHeap<int>();
+ for(int i = 0; i < heap_data.Length; i++) {
+ heap_data[i] = i;
+ }
+ }
+
+ private void PopulateHeap()
+ {
+ heap.Clear();
+
+ foreach(int i in heap_data) {
+ heap.Push(i, 0);
+ }
+
+ Assert.AreEqual(heap.Count, heap_data.Length);
+ }
+
+ [Test]
+ public void PopHeap()
+ {
+ PopulateHeap();
+
+ int i = 0;
+ while(heap.Count > 0) {
+ heap.Pop();
+ i++;
+ }
+
+ Assert.AreEqual(i, heap_data.Length);
+ }
+
+ [Test]
+ public void IterateHeap()
+ {
+ PopulateHeap();
+
+ int i = 0;
+ foreach(int x in heap) {
+ Assert.AreEqual(x, heap_data[i++]);
+ }
+
+ Assert.AreEqual(i, heap.Count);
+ }
+
+ [Test]
+ public void RemoveItemsFromHeap()
+ {
+ IntervalHeap<int> h = new IntervalHeap<int>();
+ for(int i = 0; i < 20; i++) {
+ h.Push(i, i);
+ }
+
+ h.Remove(10);
+ h.Remove(2);
+ h.Remove(11);
+ h.Remove(9);
+ h.Remove(19);
+ h.Remove(0);
+
+ Assert.AreEqual(h.Pop(), 18);
+ Assert.AreEqual(h.Pop(), 17);
+ Assert.AreEqual(h.Pop(), 16);
+ Assert.AreEqual(h.Pop(), 15);
+ Assert.AreEqual(h.Pop(), 14);
+ Assert.AreEqual(h.Pop(), 13);
+ Assert.AreEqual(h.Pop(), 12);
+ Assert.AreEqual(h.Pop(), 8);
+ Assert.AreEqual(h.Pop(), 7);
+ Assert.AreEqual(h.Pop(), 6);
+ Assert.AreEqual(h.Pop(), 5);
+ Assert.AreEqual(h.Pop(), 4);
+ Assert.AreEqual(h.Pop(), 3);
+ Assert.AreEqual(h.Pop(), 1);
+
+ Assert.AreEqual(h.Count, 0);
+ }
+ }
}
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/RangeCollectionTests.cs (from r3930, /trunk/banshee/tests/Hyena/RangeCollectionTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/RangeCollectionTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Collections/Tests/RangeCollectionTests.cs Mon May 19 21:34:45 2008
@@ -26,414 +26,421 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using System.Collections.Generic;
using NUnit.Framework;
using Hyena.Collections;
-[TestFixture]
-public class RangeCollectionTests
+namespace Hyena.Collections.Tests
{
- [Test]
- public void TestSingleRanges ()
- {
- _TestRanges (new RangeCollection (), new int [] { 1, 11, 5, 7, 15, 32, 3, 9, 34 });
- }
-
- [Test]
- public void TestMergedRanges ()
+ [TestFixture]
+ public class RangeCollectionTests
{
- RangeCollection range = new RangeCollection ();
- int [] indexes = new int [] { 0, 7, 5, 9, 1, 6, 8, 2, 10, 12 };
-
- _TestRanges (range, indexes);
- Assert.AreEqual (3, range.RangeCount);
-
- int i= 0;
- foreach (RangeCollection.Range r in range.Ranges) {
- switch (i++) {
- case 0:
- Assert.AreEqual (0, r.Start);
- Assert.AreEqual (2, r.End);
- break;
- case 1:
- Assert.AreEqual (5, r.Start);
- Assert.AreEqual (10, r.End);
- break;
- case 2:
- Assert.AreEqual (12, r.Start);
- Assert.AreEqual (12, r.End);
- break;
- default:
- Assert.Fail ("This should not be reached!");
- break;
+ [Test]
+ public void SingleRanges ()
+ {
+ _TestRanges (new RangeCollection (), new int [] { 1, 11, 5, 7, 15, 32, 3, 9, 34 });
+ }
+
+ [Test]
+ public void MergedRanges ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int [] indexes = new int [] { 0, 7, 5, 9, 1, 6, 8, 2, 10, 12 };
+
+ _TestRanges (range, indexes);
+ Assert.AreEqual (3, range.RangeCount);
+
+ int i= 0;
+ foreach (RangeCollection.Range r in range.Ranges) {
+ switch (i++) {
+ case 0:
+ Assert.AreEqual (0, r.Start);
+ Assert.AreEqual (2, r.End);
+ break;
+ case 1:
+ Assert.AreEqual (5, r.Start);
+ Assert.AreEqual (10, r.End);
+ break;
+ case 2:
+ Assert.AreEqual (12, r.Start);
+ Assert.AreEqual (12, r.End);
+ break;
+ default:
+ Assert.Fail ("This should not be reached!");
+ break;
+ }
}
}
- }
-
- [Test]
- public void TestLargeSequential ()
- {
- RangeCollection range = new RangeCollection ();
- int i, n = 1000000;
-
- for (i = 0; i < n; i++) {
- range.Add (i);
- Assert.AreEqual (1, range.RangeCount);
- }
-
- Assert.AreEqual (n, range.Count);
-
- i = 0;
- foreach (int j in range) {
- Assert.AreEqual (i++, j);
- }
-
- Assert.AreEqual (n, i);
- }
-
- [Test]
- public void TestLargeNonAdjacent ()
- {
- RangeCollection range = new RangeCollection ();
- int i, n = 1000000;
-
- for (i = 0; i < n; i += 2) {
- range.Add (i);
- }
-
- Assert.AreEqual (n / 2, range.Count);
-
- i = 0;
- foreach (int j in range) {
- Assert.AreEqual (i, j);
- i += 2;
- }
-
- Assert.AreEqual (n, i);
- }
-
- private static void _TestRanges (RangeCollection range, int [] indexes)
- {
- foreach (int index in indexes) {
- range.Add (index);
- }
- Assert.AreEqual (indexes.Length, range.Count);
-
- Array.Sort (indexes);
-
- int i = 0;
- foreach (int index in range) {
- Assert.AreEqual (indexes[i++], index);
- }
-
-#pragma warning disable 0618
-
- i = 0;
- foreach (int index in range.Indexes) {
- Assert.AreEqual (indexes[i++], index);
- }
-
- for (i = 0; i < range.Indexes.Length; i++) {
- Assert.AreEqual (indexes[i], range.Indexes[i]);
+ [Test]
+ public void LargeSequential ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int i, n = 1000000;
+
+ for (i = 0; i < n; i++) {
+ range.Add (i);
+ Assert.AreEqual (1, range.RangeCount);
+ }
+
+ Assert.AreEqual (n, range.Count);
+
+ i = 0;
+ foreach (int j in range) {
+ Assert.AreEqual (i++, j);
+ }
+
+ Assert.AreEqual (n, i);
}
-
-#pragma warning restore 0618
-
- }
- [Test]
- public void TestRemoveSingles ()
- {
- RangeCollection range = new RangeCollection ();
- int [] indexes = new int [] { 0, 2, 4, 6, 8, 10, 12, 14 };
- foreach (int index in indexes) {
- range.Add (index);
- }
-
- foreach (int index in indexes) {
- Assert.AreEqual (true, range.Remove (index));
+ [Test]
+ public void LargeNonAdjacent ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int i, n = 1000000;
+
+ for (i = 0; i < n; i += 2) {
+ range.Add (i);
+ }
+
+ Assert.AreEqual (n / 2, range.Count);
+
+ i = 0;
+ foreach (int j in range) {
+ Assert.AreEqual (i, j);
+ i += 2;
+ }
+
+ Assert.AreEqual (n, i);
}
- }
-
- [Test]
- public void TestRemoveStarts ()
- {
- RangeCollection range = _SetupTestRemoveMerges ();
-
- Assert.AreEqual (true, range.Contains (0));
- range.Remove (0);
- Assert.AreEqual (false, range.Contains (0));
- Assert.AreEqual (4, range.RangeCount);
-
- Assert.AreEqual (true, range.Contains (2));
- range.Remove (2);
- Assert.AreEqual (false, range.Contains (2));
- Assert.AreEqual (4, range.RangeCount);
- Assert.AreEqual (3, range.Ranges[0].Start);
- Assert.AreEqual (5, range.Ranges[0].End);
-
- Assert.AreEqual (true, range.Contains (14));
- range.Remove (14);
- Assert.AreEqual (false, range.Contains (14));
- Assert.AreEqual (4, range.RangeCount);
- Assert.AreEqual (15, range.Ranges[2].Start);
- Assert.AreEqual (15, range.Ranges[2].End);
- }
-
- [Test]
- public void TestRemoveEnds ()
- {
- RangeCollection range = _SetupTestRemoveMerges ();
-
- Assert.AreEqual (true, range.Contains (5));
- range.Remove (5);
- Assert.AreEqual (false, range.Contains (5));
- Assert.AreEqual (5, range.RangeCount);
- Assert.AreEqual (2, range.Ranges[1].Start);
- Assert.AreEqual (4, range.Ranges[1].End);
-
- Assert.AreEqual (true, range.Contains (15));
- range.Remove (15);
- Assert.AreEqual (false, range.Contains (15));
- Assert.AreEqual (5, range.RangeCount);
- Assert.AreEqual (14, range.Ranges[3].Start);
- Assert.AreEqual (14, range.Ranges[3].End);
- }
- [Test]
- public void TestRemoveMids ()
- {
- RangeCollection range = _SetupTestRemoveMerges ();
-
- Assert.AreEqual (5, range.RangeCount);
- Assert.AreEqual (14, range.Ranges[3].Start);
- Assert.AreEqual (15, range.Ranges[3].End);
- Assert.AreEqual (true, range.Contains (9));
- range.Remove (9);
- Assert.AreEqual (false, range.Contains (9));
- Assert.AreEqual (6, range.RangeCount);
- Assert.AreEqual (7, range.Ranges[2].Start);
- Assert.AreEqual (8, range.Ranges[2].End);
- Assert.AreEqual (10, range.Ranges[3].Start);
- Assert.AreEqual (11, range.Ranges[3].End);
- Assert.AreEqual (14, range.Ranges[4].Start);
- Assert.AreEqual (15, range.Ranges[4].End);
- }
+ private static void _TestRanges (RangeCollection range, int [] indexes)
+ {
+ foreach (int index in indexes) {
+ range.Add (index);
+ }
+
+ Assert.AreEqual (indexes.Length, range.Count);
+
+ Array.Sort (indexes);
+
+ int i = 0;
+ foreach (int index in range) {
+ Assert.AreEqual (indexes[i++], index);
+ }
+
+ #pragma warning disable 0618
- private static RangeCollection _SetupTestRemoveMerges ()
- {
- RangeCollection range = new RangeCollection ();
- int [] indexes = new int [] {
- 0,
- 2, 3, 4, 5,
- 7, 8, 9, 10, 11,
- 14, 15,
- 17, 18, 19
- };
-
- foreach (int index in indexes) {
- range.Add (index);
- }
-
- int i = 0;
- foreach (RangeCollection.Range r in range.Ranges) {
- switch (i++) {
- case 0:
- Assert.AreEqual (0, r.Start);
- Assert.AreEqual (0, r.End);
- break;
- case 1:
- Assert.AreEqual (2, r.Start);
- Assert.AreEqual (5, r.End);
- break;
- case 2:
- Assert.AreEqual (7, r.Start);
- Assert.AreEqual (11, r.End);
- break;
- case 3:
- Assert.AreEqual (14, r.Start);
- Assert.AreEqual (15, r.End);
- break;
- case 4:
- Assert.AreEqual (17, r.Start);
- Assert.AreEqual (19, r.End);
- break;
- default:
- Assert.Fail ("Should never reach here");
- break;
+ i = 0;
+ foreach (int index in range.Indexes) {
+ Assert.AreEqual (indexes[i++], index);
+ }
+
+ for (i = 0; i < range.Indexes.Length; i++) {
+ Assert.AreEqual (indexes[i], range.Indexes[i]);
}
- }
-
- return range;
- }
-#pragma warning disable 0618
+ #pragma warning restore 0618
- [Test]
- public void TestIndexesCacheGeneration ()
- {
- RangeCollection range = new RangeCollection ();
- int [] index_cache = range.Indexes;
-
- Assert.AreSame (index_cache, range.Indexes);
-
- range.Add (0);
- range.Add (5);
+ }
- if (index_cache == range.Indexes) {
- Assert.Fail ("Indexes Cache not regenerated after change");
+ [Test]
+ public void RemoveSingles ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int [] indexes = new int [] { 0, 2, 4, 6, 8, 10, 12, 14 };
+ foreach (int index in indexes) {
+ range.Add (index);
+ }
+
+ foreach (int index in indexes) {
+ Assert.AreEqual (true, range.Remove (index));
+ }
}
- index_cache = range.Indexes;
- range.Remove (0);
- range.Add (3);
-
- if (index_cache == range.Indexes) {
- Assert.Fail ("Indexes Cache not regenerated after change");
+ [Test]
+ public void RemoveStarts ()
+ {
+ RangeCollection range = _SetupTestRemoveMerges ();
+
+ Assert.AreEqual (true, range.Contains (0));
+ range.Remove (0);
+ Assert.AreEqual (false, range.Contains (0));
+ Assert.AreEqual (4, range.RangeCount);
+
+ Assert.AreEqual (true, range.Contains (2));
+ range.Remove (2);
+ Assert.AreEqual (false, range.Contains (2));
+ Assert.AreEqual (4, range.RangeCount);
+ Assert.AreEqual (3, range.Ranges[0].Start);
+ Assert.AreEqual (5, range.Ranges[0].End);
+
+ Assert.AreEqual (true, range.Contains (14));
+ range.Remove (14);
+ Assert.AreEqual (false, range.Contains (14));
+ Assert.AreEqual (4, range.RangeCount);
+ Assert.AreEqual (15, range.Ranges[2].Start);
+ Assert.AreEqual (15, range.Ranges[2].End);
+ }
+
+ [Test]
+ public void RemoveEnds ()
+ {
+ RangeCollection range = _SetupTestRemoveMerges ();
+
+ Assert.AreEqual (true, range.Contains (5));
+ range.Remove (5);
+ Assert.AreEqual (false, range.Contains (5));
+ Assert.AreEqual (5, range.RangeCount);
+ Assert.AreEqual (2, range.Ranges[1].Start);
+ Assert.AreEqual (4, range.Ranges[1].End);
+
+ Assert.AreEqual (true, range.Contains (15));
+ range.Remove (15);
+ Assert.AreEqual (false, range.Contains (15));
+ Assert.AreEqual (5, range.RangeCount);
+ Assert.AreEqual (14, range.Ranges[3].Start);
+ Assert.AreEqual (14, range.Ranges[3].End);
+ }
+
+ [Test]
+ public void RemoveMids ()
+ {
+ RangeCollection range = _SetupTestRemoveMerges ();
+
+ Assert.AreEqual (5, range.RangeCount);
+ Assert.AreEqual (14, range.Ranges[3].Start);
+ Assert.AreEqual (15, range.Ranges[3].End);
+ Assert.AreEqual (true, range.Contains (9));
+ range.Remove (9);
+ Assert.AreEqual (false, range.Contains (9));
+ Assert.AreEqual (6, range.RangeCount);
+ Assert.AreEqual (7, range.Ranges[2].Start);
+ Assert.AreEqual (8, range.Ranges[2].End);
+ Assert.AreEqual (10, range.Ranges[3].Start);
+ Assert.AreEqual (11, range.Ranges[3].End);
+ Assert.AreEqual (14, range.Ranges[4].Start);
+ Assert.AreEqual (15, range.Ranges[4].End);
+ }
+
+ private static RangeCollection _SetupTestRemoveMerges ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int [] indexes = new int [] {
+ 0,
+ 2, 3, 4, 5,
+ 7, 8, 9, 10, 11,
+ 14, 15,
+ 17, 18, 19
+ };
+
+ foreach (int index in indexes) {
+ range.Add (index);
+ }
+
+ int i = 0;
+ foreach (RangeCollection.Range r in range.Ranges) {
+ switch (i++) {
+ case 0:
+ Assert.AreEqual (0, r.Start);
+ Assert.AreEqual (0, r.End);
+ break;
+ case 1:
+ Assert.AreEqual (2, r.Start);
+ Assert.AreEqual (5, r.End);
+ break;
+ case 2:
+ Assert.AreEqual (7, r.Start);
+ Assert.AreEqual (11, r.End);
+ break;
+ case 3:
+ Assert.AreEqual (14, r.Start);
+ Assert.AreEqual (15, r.End);
+ break;
+ case 4:
+ Assert.AreEqual (17, r.Start);
+ Assert.AreEqual (19, r.End);
+ break;
+ default:
+ Assert.Fail ("Should never reach here");
+ break;
+ }
+ }
+
+ return range;
}
- }
-
-#pragma warning restore 0618
-
- [Test]
- public void TestIndexOf ()
- {
- RangeCollection range = new RangeCollection ();
- range.Add (0);
- range.Add (2);
- range.Add (3);
- range.Add (5);
- range.Add (6);
- range.Add (7);
- range.Add (8);
- range.Add (11);
- range.Add (12);
- range.Add (13);
-
- Assert.AreEqual (0, range.IndexOf (0));
- Assert.AreEqual (1, range.IndexOf (2));
- Assert.AreEqual (2, range.IndexOf (3));
- Assert.AreEqual (3, range.IndexOf (5));
- Assert.AreEqual (4, range.IndexOf (6));
- Assert.AreEqual (5, range.IndexOf (7));
- Assert.AreEqual (6, range.IndexOf (8));
- Assert.AreEqual (7, range.IndexOf (11));
- Assert.AreEqual (8, range.IndexOf (12));
- Assert.AreEqual (9, range.IndexOf (13));
- Assert.AreEqual (-1, range.IndexOf (99));
- }
-
- [Test]
- public void TestIndexerForGoodIndexes ()
- {
- RangeCollection range = new RangeCollection ();
+ #pragma warning disable 0618
- /*
- Range Idx Value
- 0-2 0 -> 0
- 1 -> 1
- 2 -> 2
-
- 7-9 3 -> 7
- 4 -> 8
- 5 -> 9
-
- 11-13 6 -> 11
- 7 -> 12
- 8 -> 13
- */
-
- range.Add (0);
- range.Add (1);
- range.Add (2);
- range.Add (7);
- range.Add (8);
- range.Add (9);
- range.Add (11);
- range.Add (12);
- range.Add (13);
-
- Assert.AreEqual (0, range[0]);
- Assert.AreEqual (1, range[1]);
- Assert.AreEqual (2, range[2]);
- Assert.AreEqual (7, range[3]);
- Assert.AreEqual (8, range[4]);
- Assert.AreEqual (9, range[5]);
- Assert.AreEqual (11, range[6]);
- Assert.AreEqual (12, range[7]);
- Assert.AreEqual (13, range[8]);
- }
+ [Test]
+ public void IndexesCacheGeneration ()
+ {
+ RangeCollection range = new RangeCollection ();
+ int [] index_cache = range.Indexes;
+
+ Assert.AreSame (index_cache, range.Indexes);
+
+ range.Add (0);
+ range.Add (5);
+
+ if (index_cache == range.Indexes) {
+ Assert.Fail ("Indexes Cache not regenerated after change");
+ }
+
+ index_cache = range.Indexes;
+ range.Remove (0);
+ range.Add (3);
- private static void SortedInsert<T> (List<T> list, T value)
- where T : IComparable
- {
- if (list.Count == 0 || list[list.Count - 1].CompareTo (value) < 0) {
- list.Add (value);
- } else if (list[0].CompareTo (value) > 0) {
- list.Insert (0, value);
- } else {
- int index = list.BinarySearch (value);
- list.Insert (index < 0 ? ~index : index, value);
- }
- }
-
- [Test]
- public void TestStressForGoodIndexes ()
- {
- Random random = new Random (0xbeef);
- RangeCollection ranges = new RangeCollection ();
- List<int> indexes = new List<int> ();
-
- for (int i = 0, n = 75000; i < n; i++) {
- int value = random.Next (n);
- if (ranges.Add (value)) {
- SortedInsert (indexes, value);
- }
- }
-
- Assert.AreEqual (indexes.Count, ranges.Count);
- for (int i = 0; i < indexes.Count; i++) {
- Assert.AreEqual (indexes[i], ranges[i]);
+ if (index_cache == range.Indexes) {
+ Assert.Fail ("Indexes Cache not regenerated after change");
+ }
}
- }
-
- [Test]
- [ExpectedException (typeof (IndexOutOfRangeException))]
- public void TestIndexerForNegativeBadIndex ()
- {
- RangeCollection range = new RangeCollection ();
- Assert.AreEqual (0, range[1]);
- }
-
- [Test]
- [ExpectedException (typeof (IndexOutOfRangeException))]
- public void TestIndexerForZeroBadIndex ()
- {
- RangeCollection range = new RangeCollection ();
- Assert.AreEqual (0, range[0]);
- }
+
+ #pragma warning restore 0618
- [Test]
- [ExpectedException (typeof (IndexOutOfRangeException))]
- public void TestIndexerForPositiveBadIndex ()
- {
- RangeCollection range = new RangeCollection ();
- range.Add (1);
- Assert.AreEqual (0, range[1]);
- }
+ [Test]
+ public void IndexOf ()
+ {
+ RangeCollection range = new RangeCollection ();
+
+ range.Add (0);
+ range.Add (2);
+ range.Add (3);
+ range.Add (5);
+ range.Add (6);
+ range.Add (7);
+ range.Add (8);
+ range.Add (11);
+ range.Add (12);
+ range.Add (13);
+
+ Assert.AreEqual (0, range.IndexOf (0));
+ Assert.AreEqual (1, range.IndexOf (2));
+ Assert.AreEqual (2, range.IndexOf (3));
+ Assert.AreEqual (3, range.IndexOf (5));
+ Assert.AreEqual (4, range.IndexOf (6));
+ Assert.AreEqual (5, range.IndexOf (7));
+ Assert.AreEqual (6, range.IndexOf (8));
+ Assert.AreEqual (7, range.IndexOf (11));
+ Assert.AreEqual (8, range.IndexOf (12));
+ Assert.AreEqual (9, range.IndexOf (13));
+ Assert.AreEqual (-1, range.IndexOf (99));
+ }
+
+ [Test]
+ public void IndexerForGoodIndexes ()
+ {
+ RangeCollection range = new RangeCollection ();
+
+ /*
+ Range Idx Value
+ 0-2 0 -> 0
+ 1 -> 1
+ 2 -> 2
+
+ 7-9 3 -> 7
+ 4 -> 8
+ 5 -> 9
+
+ 11-13 6 -> 11
+ 7 -> 12
+ 8 -> 13
+ */
+
+ range.Add (0);
+ range.Add (1);
+ range.Add (2);
+ range.Add (7);
+ range.Add (8);
+ range.Add (9);
+ range.Add (11);
+ range.Add (12);
+ range.Add (13);
+
+ Assert.AreEqual (0, range[0]);
+ Assert.AreEqual (1, range[1]);
+ Assert.AreEqual (2, range[2]);
+ Assert.AreEqual (7, range[3]);
+ Assert.AreEqual (8, range[4]);
+ Assert.AreEqual (9, range[5]);
+ Assert.AreEqual (11, range[6]);
+ Assert.AreEqual (12, range[7]);
+ Assert.AreEqual (13, range[8]);
+ }
+
+ private static void SortedInsert<T> (List<T> list, T value)
+ where T : IComparable
+ {
+ if (list.Count == 0 || list[list.Count - 1].CompareTo (value) < 0) {
+ list.Add (value);
+ } else if (list[0].CompareTo (value) > 0) {
+ list.Insert (0, value);
+ } else {
+ int index = list.BinarySearch (value);
+ list.Insert (index < 0 ? ~index : index, value);
+ }
+ }
- [Test]
- public void TestExplicitInterface ()
- {
- ICollection<int> range = new RangeCollection ();
- range.Add (1);
- range.Add (2);
- range.Add (5);
- range.Add (6);
+ [Test]
+ public void StressForGoodIndexes ()
+ {
+ Random random = new Random (0xbeef);
+ RangeCollection ranges = new RangeCollection ();
+ List<int> indexes = new List<int> ();
+
+ for (int i = 0, n = 75000; i < n; i++) {
+ int value = random.Next (n);
+ if (ranges.Add (value)) {
+ SortedInsert (indexes, value);
+ }
+ }
+
+ Assert.AreEqual (indexes.Count, ranges.Count);
+ for (int i = 0; i < indexes.Count; i++) {
+ Assert.AreEqual (indexes[i], ranges[i]);
+ }
+ }
- Assert.AreEqual (4, range.Count);
+ [Test]
+ [ExpectedException (typeof (IndexOutOfRangeException))]
+ public void IndexerForNegativeBadIndex ()
+ {
+ RangeCollection range = new RangeCollection ();
+ Assert.AreEqual (0, range[1]);
+ }
+
+ [Test]
+ [ExpectedException (typeof (IndexOutOfRangeException))]
+ public void IndexerForZeroBadIndex ()
+ {
+ RangeCollection range = new RangeCollection ();
+ Assert.AreEqual (0, range[0]);
+ }
+
+ [Test]
+ [ExpectedException (typeof (IndexOutOfRangeException))]
+ public void IndexerForPositiveBadIndex ()
+ {
+ RangeCollection range = new RangeCollection ();
+ range.Add (1);
+ Assert.AreEqual (0, range[1]);
+ }
+
+ [Test]
+ public void ExplicitInterface ()
+ {
+ ICollection<int> range = new RangeCollection ();
+ range.Add (1);
+ range.Add (2);
+ range.Add (5);
+ range.Add (6);
+
+ Assert.AreEqual (4, range.Count);
+ }
}
}
+
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/DbBoundType.cs (from r3928, /trunk/banshee/tests/Hyena/DbBoundType.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/DbBoundType.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/DbBoundType.cs Mon May 19 21:34:45 2008
@@ -26,286 +26,293 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using Hyena.Data.Sqlite;
-public enum IntEnum : int
-{
- Zero,
- One,
- Two,
- Three
-}
-
-public enum LongEnum : long
-{
- Cero,
- Uno,
- Dos,
- Tres
-}
-
-public class ModelProvider : SqliteModelProvider<DbBoundType>
+namespace Hyena.Data.Sqlite.Tests
{
- public ModelProvider (HyenaSqliteConnection connection) : base (connection)
+ internal enum IntEnum : int
{
- Init ();
- }
-
- public override string TableName {
- get { return "TestTable"; }
- }
- protected override int ModelVersion {
- get { return 1; }
- }
- protected override int DatabaseVersion {
- get { return 1; }
+ Zero,
+ One,
+ Two,
+ Three
}
- protected override void MigrateTable (int old_version)
+ internal enum LongEnum : long
{
+ Cero,
+ Uno,
+ Dos,
+ Tres
}
- protected override void MigrateDatabase (int old_version)
- {
- }
- protected override DbBoundType MakeNewObject ()
- {
- return new DbBoundType ();
- }
-}
-
-public class DbBoundType
-{
- [DatabaseColumn ("PrimaryKey", Constraints = DatabaseColumnConstraints.PrimaryKey)]
- public int PrimaryKey;
- [DatabaseColumn ("PublicIntField")]
- public int PublicIntField;
- [DatabaseColumn ("PublicLongField")]
- public long PublicLongField;
- [DatabaseColumn ("PublicStringField")]
- public string PublicStringField;
- [DatabaseColumn ("PublicDateTimeField")]
- public DateTime PublicDateTimeField;
- [DatabaseColumn ("PublicTimeSpanField")]
- public TimeSpan PublicTimeSpanField;
- [DatabaseColumn ("PublicIntEnumField")]
- public IntEnum PublicIntEnumField;
- [DatabaseColumn ("PublicLongEnumField")]
- public LongEnum PublicLongEnumField;
-
- private int public_int_property_field;
- [DatabaseColumn ("PublicIntProperty")]
- public int PublicIntProperty {
- get { return public_int_property_field; }
- set { public_int_property_field = value; }
- }
- private long public_long_property_field;
- [DatabaseColumn ("PublicLongProperty")]
- public long PublicLongProperty {
- get { return public_long_property_field; }
- set { public_long_property_field = value; }
- }
- private string public_string_property_field;
- [DatabaseColumn ("PublicStringProperty")]
- public string PublicStringProperty {
- get { return public_string_property_field; }
- set { public_string_property_field = value; }
- }
- private DateTime public_date_time_proprety_field;
- [DatabaseColumn ("PublicDateTimeProperty")]
- public DateTime PublicDateTimeProperty {
- get { return public_date_time_proprety_field; }
- set { public_date_time_proprety_field = value; }
- }
- private TimeSpan public_time_span_property_field;
- [DatabaseColumn ("PublicTimeSpanProperty")]
- public TimeSpan PublicTimeSpanProperty {
- get { return public_time_span_property_field; }
- set { public_time_span_property_field = value; }
- }
- private IntEnum public_int_enum_property_field;
- [DatabaseColumn ("PublicIntEnumProperty")]
- public IntEnum PublicIntEnumProperty {
- get { return public_int_enum_property_field; }
- set { public_int_enum_property_field = value; }
- }
- private LongEnum public_long_enum_property_field;
- [DatabaseColumn ("PublicLongEnumProperty")]
- public LongEnum PublicLongEnumProperty {
- get { return public_long_enum_property_field; }
- set { public_long_enum_property_field = value; }
- }
-
- [DatabaseColumn ("PrivateIntField")]
- private int private_int_field;
- [DatabaseColumn ("PrivateLongField")]
- private long private_long_field;
- [DatabaseColumn ("PrivateStringField")]
- private string private_string_field;
- [DatabaseColumn ("PrivateDateTimeField")]
- private DateTime private_date_time_field;
- [DatabaseColumn ("PrivateTimeSpanField")]
- private TimeSpan private_time_span_field;
- [DatabaseColumn ("PrivateIntEnumField")]
- private IntEnum private_int_enum_field;
- [DatabaseColumn ("PrivateLongEnumField")]
- private LongEnum private_long_enum_field;
-
- public int GetPrivateIntField ()
- {
- return private_int_field;
- }
- public void SetPrivateIntField (int value)
- {
- private_int_field = value;
- }
- public long GetPrivateLongField ()
- {
- return private_long_field;
- }
- public void SetPrivateLongField (long value)
+ internal class ModelProvider : SqliteModelProvider<DbBoundType>
{
- private_long_field = value;
- }
- public string GetPrivateStringField ()
- {
- return private_string_field;
- }
- public void SetPrivateStringField (string value)
- {
- private_string_field = value;
- }
- public DateTime GetPrivateDateTimeField ()
- {
- return private_date_time_field;
- }
- public void SetPrivateDateTimeField (DateTime value)
- {
- private_date_time_field = value;
- }
- public TimeSpan GetPrivateTimeSpanField ()
- {
- return private_time_span_field;
- }
- public void SetPrivateTimeSpanField (TimeSpan value)
- {
- private_time_span_field = value;
- }
- public IntEnum GetPrivateIntEnumField ()
- {
- return private_int_enum_field;
- }
- public void SetPrivateIntEnumField (IntEnum value)
- {
- private_int_enum_field = value;
- }
- public LongEnum GetPrivateLongEnumField ()
- {
- return private_long_enum_field;
- }
- public void SetPrivateLongEnumField (LongEnum value)
- {
- private_long_enum_field = value;
- }
-
- private int private_int_property_field;
- [DatabaseColumn ("PrivateIntProperty")]
- private int private_int_property {
- get { return private_int_property_field; }
- set { private_int_property_field = value; }
- }
- private long private_long_property_field;
- [DatabaseColumn ("PrivateLongProperty")]
- private long private_long_property {
- get { return private_long_property_field; }
- set { private_long_property_field = value; }
- }
- private string private_string_property_field;
- [DatabaseColumn ("PrivateStringProperty")]
- private string private_string_property {
- get { return private_string_property_field; }
- set { private_string_property_field = value; }
- }
- private DateTime private_date_time_property_field;
- [DatabaseColumn ("PrivateDateTimeProperty")]
- private DateTime private_date_time_property {
- get { return private_date_time_property_field; }
- set { private_date_time_property_field = value; }
- }
- private TimeSpan private_time_span_property_field;
- [DatabaseColumn ("PrivateTimeSpanProperty")]
- private TimeSpan private_time_span_property {
- get { return private_time_span_property_field; }
- set { private_time_span_property_field = value; }
- }
- private IntEnum private_int_enum_property_field;
- [DatabaseColumn ("PrivateIntEnumProperty")]
- private IntEnum private_int_enum_property {
- get { return private_int_enum_property_field; }
- set { private_int_enum_property_field = value; }
- }
- private LongEnum private_long_enum_property_field;
- [DatabaseColumn ("PrivateLongEnumProperty")]
- private LongEnum private_long_enum_property {
- get { return private_long_enum_property_field; }
- set { private_long_enum_property_field = value; }
+ public ModelProvider (HyenaSqliteConnection connection) : base (connection)
+ {
+ Init ();
+ }
+
+ public override string TableName {
+ get { return "TestTable"; }
+ }
+ protected override int ModelVersion {
+ get { return 1; }
+ }
+ protected override int DatabaseVersion {
+ get { return 1; }
+ }
+
+ protected override void MigrateTable (int old_version)
+ {
+ }
+ protected override void MigrateDatabase (int old_version)
+ {
+ }
+ protected override DbBoundType MakeNewObject ()
+ {
+ return new DbBoundType ();
+ }
}
- public int GetPrivateIntProperty ()
- {
- return private_int_property;
- }
- public void SetPrivateIntProperty (int value)
- {
- private_int_property = value;
- }
- public long GetPrivateLongProperty ()
- {
- return private_long_property;
- }
- public void SetPrivateLongProperty (long value)
- {
- private_long_property = value;
- }
- public string GetPrivateStringProperty ()
- {
- return private_string_property;
- }
- public void SetPrivateStringProperty (string value)
- {
- private_string_property = value;
- }
- public DateTime GetPrivateDateTimeProperty ()
- {
- return private_date_time_property;
- }
- public void SetPrivateDateTimeProperty (DateTime value)
- {
- private_date_time_property = value;
- }
- public TimeSpan GetPrivateTimeSpanProperty ()
+ internal class DbBoundType
{
- return private_time_span_property;
- }
- public void SetPrivateTimeSpanProperty (TimeSpan value)
- {
- private_time_span_property = value;
- }
- public IntEnum GetPrivateIntEnumProperty ()
- {
- return private_int_enum_property;
- }
- public void SetPrivateIntEnumProperty (IntEnum value)
- {
- private_int_enum_property = value;
- }
- public LongEnum GetPrivateLongEnumProperty ()
- {
- return private_long_enum_property;
- }
- public void SetPrivateLongEnumProperty (LongEnum value)
- {
- private_long_enum_property = value;
+ [DatabaseColumn ("PrimaryKey", Constraints = DatabaseColumnConstraints.PrimaryKey)]
+ public int PrimaryKey;
+
+ [DatabaseColumn ("PublicIntField")]
+ public int PublicIntField;
+ [DatabaseColumn ("PublicLongField")]
+ public long PublicLongField;
+ [DatabaseColumn ("PublicStringField")]
+ public string PublicStringField;
+ [DatabaseColumn ("PublicDateTimeField")]
+ public DateTime PublicDateTimeField;
+ [DatabaseColumn ("PublicTimeSpanField")]
+ public TimeSpan PublicTimeSpanField;
+ [DatabaseColumn ("PublicIntEnumField")]
+ public IntEnum PublicIntEnumField;
+ [DatabaseColumn ("PublicLongEnumField")]
+ public LongEnum PublicLongEnumField;
+
+ private int public_int_property_field;
+ [DatabaseColumn ("PublicIntProperty")]
+ public int PublicIntProperty {
+ get { return public_int_property_field; }
+ set { public_int_property_field = value; }
+ }
+ private long public_long_property_field;
+ [DatabaseColumn ("PublicLongProperty")]
+ public long PublicLongProperty {
+ get { return public_long_property_field; }
+ set { public_long_property_field = value; }
+ }
+ private string public_string_property_field;
+ [DatabaseColumn ("PublicStringProperty")]
+ public string PublicStringProperty {
+ get { return public_string_property_field; }
+ set { public_string_property_field = value; }
+ }
+ private DateTime public_date_time_proprety_field;
+ [DatabaseColumn ("PublicDateTimeProperty")]
+ public DateTime PublicDateTimeProperty {
+ get { return public_date_time_proprety_field; }
+ set { public_date_time_proprety_field = value; }
+ }
+ private TimeSpan public_time_span_property_field;
+ [DatabaseColumn ("PublicTimeSpanProperty")]
+ public TimeSpan PublicTimeSpanProperty {
+ get { return public_time_span_property_field; }
+ set { public_time_span_property_field = value; }
+ }
+ private IntEnum public_int_enum_property_field;
+ [DatabaseColumn ("PublicIntEnumProperty")]
+ public IntEnum PublicIntEnumProperty {
+ get { return public_int_enum_property_field; }
+ set { public_int_enum_property_field = value; }
+ }
+ private LongEnum public_long_enum_property_field;
+ [DatabaseColumn ("PublicLongEnumProperty")]
+ public LongEnum PublicLongEnumProperty {
+ get { return public_long_enum_property_field; }
+ set { public_long_enum_property_field = value; }
+ }
+
+ [DatabaseColumn ("PrivateIntField")]
+ private int private_int_field;
+ [DatabaseColumn ("PrivateLongField")]
+ private long private_long_field;
+ [DatabaseColumn ("PrivateStringField")]
+ private string private_string_field;
+ [DatabaseColumn ("PrivateDateTimeField")]
+ private DateTime private_date_time_field;
+ [DatabaseColumn ("PrivateTimeSpanField")]
+ private TimeSpan private_time_span_field;
+ [DatabaseColumn ("PrivateIntEnumField")]
+ private IntEnum private_int_enum_field;
+ [DatabaseColumn ("PrivateLongEnumField")]
+ private LongEnum private_long_enum_field;
+
+ public int GetPrivateIntField ()
+ {
+ return private_int_field;
+ }
+ public void SetPrivateIntField (int value)
+ {
+ private_int_field = value;
+ }
+ public long GetPrivateLongField ()
+ {
+ return private_long_field;
+ }
+ public void SetPrivateLongField (long value)
+ {
+ private_long_field = value;
+ }
+ public string GetPrivateStringField ()
+ {
+ return private_string_field;
+ }
+ public void SetPrivateStringField (string value)
+ {
+ private_string_field = value;
+ }
+ public DateTime GetPrivateDateTimeField ()
+ {
+ return private_date_time_field;
+ }
+ public void SetPrivateDateTimeField (DateTime value)
+ {
+ private_date_time_field = value;
+ }
+ public TimeSpan GetPrivateTimeSpanField ()
+ {
+ return private_time_span_field;
+ }
+ public void SetPrivateTimeSpanField (TimeSpan value)
+ {
+ private_time_span_field = value;
+ }
+ public IntEnum GetPrivateIntEnumField ()
+ {
+ return private_int_enum_field;
+ }
+ public void SetPrivateIntEnumField (IntEnum value)
+ {
+ private_int_enum_field = value;
+ }
+ public LongEnum GetPrivateLongEnumField ()
+ {
+ return private_long_enum_field;
+ }
+ public void SetPrivateLongEnumField (LongEnum value)
+ {
+ private_long_enum_field = value;
+ }
+
+ private int private_int_property_field;
+ [DatabaseColumn ("PrivateIntProperty")]
+ private int private_int_property {
+ get { return private_int_property_field; }
+ set { private_int_property_field = value; }
+ }
+ private long private_long_property_field;
+ [DatabaseColumn ("PrivateLongProperty")]
+ private long private_long_property {
+ get { return private_long_property_field; }
+ set { private_long_property_field = value; }
+ }
+ private string private_string_property_field;
+ [DatabaseColumn ("PrivateStringProperty")]
+ private string private_string_property {
+ get { return private_string_property_field; }
+ set { private_string_property_field = value; }
+ }
+ private DateTime private_date_time_property_field;
+ [DatabaseColumn ("PrivateDateTimeProperty")]
+ private DateTime private_date_time_property {
+ get { return private_date_time_property_field; }
+ set { private_date_time_property_field = value; }
+ }
+ private TimeSpan private_time_span_property_field;
+ [DatabaseColumn ("PrivateTimeSpanProperty")]
+ private TimeSpan private_time_span_property {
+ get { return private_time_span_property_field; }
+ set { private_time_span_property_field = value; }
+ }
+ private IntEnum private_int_enum_property_field;
+ [DatabaseColumn ("PrivateIntEnumProperty")]
+ private IntEnum private_int_enum_property {
+ get { return private_int_enum_property_field; }
+ set { private_int_enum_property_field = value; }
+ }
+ private LongEnum private_long_enum_property_field;
+ [DatabaseColumn ("PrivateLongEnumProperty")]
+ private LongEnum private_long_enum_property {
+ get { return private_long_enum_property_field; }
+ set { private_long_enum_property_field = value; }
+ }
+
+ public int GetPrivateIntProperty ()
+ {
+ return private_int_property;
+ }
+ public void SetPrivateIntProperty (int value)
+ {
+ private_int_property = value;
+ }
+ public long GetPrivateLongProperty ()
+ {
+ return private_long_property;
+ }
+ public void SetPrivateLongProperty (long value)
+ {
+ private_long_property = value;
+ }
+ public string GetPrivateStringProperty ()
+ {
+ return private_string_property;
+ }
+ public void SetPrivateStringProperty (string value)
+ {
+ private_string_property = value;
+ }
+ public DateTime GetPrivateDateTimeProperty ()
+ {
+ return private_date_time_property;
+ }
+ public void SetPrivateDateTimeProperty (DateTime value)
+ {
+ private_date_time_property = value;
+ }
+ public TimeSpan GetPrivateTimeSpanProperty ()
+ {
+ return private_time_span_property;
+ }
+ public void SetPrivateTimeSpanProperty (TimeSpan value)
+ {
+ private_time_span_property = value;
+ }
+ public IntEnum GetPrivateIntEnumProperty ()
+ {
+ return private_int_enum_property;
+ }
+ public void SetPrivateIntEnumProperty (IntEnum value)
+ {
+ private_int_enum_property = value;
+ }
+ public LongEnum GetPrivateLongEnumProperty ()
+ {
+ return private_long_enum_property;
+ }
+ public void SetPrivateLongEnumProperty (LongEnum value)
+ {
+ private_long_enum_property = value;
+ }
}
}
+
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs (from r3928, /trunk/banshee/tests/Hyena/SqliteCommandTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/SqliteCommandTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs Mon May 19 21:34:45 2008
@@ -26,79 +26,86 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using System.Reflection;
using NUnit.Framework;
using Hyena.Data.Sqlite;
-[TestFixture]
-public class SqliteCommandTests
+namespace Hyena.Data.Sqlite.Tests
{
- [Test]
- public void TestIdentifiesParameters ()
+ [TestFixture]
+ public class SqliteCommandTests
{
- HyenaSqliteCommand cmd = null;
- try {
- cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?",
- "a", 32);
- Assert.Fail ("Should not have been able to pass 2 values to ApplyValues without exception");
- } catch {}
-
- try {
- cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?",
- "a", 32, "22");
- } catch {
- Assert.Fail ("Should have been able to pass 3 values to ApplyValues without exception");
+ [Test]
+ public void IdentifiesParameters ()
+ {
+ HyenaSqliteCommand cmd = null;
+ try {
+ cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?",
+ "a", 32);
+ Assert.Fail ("Should not have been able to pass 2 values to ApplyValues without exception");
+ } catch {}
+
+ try {
+ cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?",
+ "a", 32, "22");
+ } catch {
+ Assert.Fail ("Should have been able to pass 3 values to ApplyValues without exception");
+ }
+
+ Assert.AreEqual ("select foo from bar where baz = 'a', bbz = 32, this = '22'", GetGeneratedSql (cmd));
+ }
+
+ [Test]
+ public void Constructor ()
+ {
+ HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?", "a", 32, "22");
+ Assert.AreEqual ("select foo from bar where baz = 'a', bbz = 32, this = '22'", GetGeneratedSql (cmd));
+ }
+
+ [Test]
+ public void CultureInvariant ()
+ {
+ HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?", 32.2);
+ Assert.AreEqual ("select foo from bar where baz = 32.2", GetGeneratedSql (cmd));
+ }
+
+ [Test]
+ public void ParameterSerialization ()
+ {
+ HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?");
+
+ Assert.AreEqual ("select foo from bar where baz = NULL", GetGeneratedSql (cmd, null));
+ Assert.AreEqual ("select foo from bar where baz = 'It''s complicated, \"but\" ''''why not''''?'", GetGeneratedSql (cmd, "It's complicated, \"but\" ''why not''?"));
+ Assert.AreEqual ("select foo from bar where baz = 0", GetGeneratedSql (cmd, new DateTime (1970, 1, 1).ToLocalTime ()));
+ Assert.AreEqual ("select foo from bar where baz = 931309200", GetGeneratedSql (cmd, new DateTime (1999, 7, 7).ToLocalTime ()));
+ Assert.AreEqual ("select foo from bar where baz = 555.55", GetGeneratedSql (cmd, 555.55f));
+ Assert.AreEqual ("select foo from bar where baz = 555.55", GetGeneratedSql (cmd, 555.55));
+ Assert.AreEqual ("select foo from bar where baz = 555", GetGeneratedSql (cmd, 555));
+ Assert.AreEqual ("select foo from bar where baz = 1", GetGeneratedSql (cmd, true));
+ Assert.AreEqual ("select foo from bar where baz = 0", GetGeneratedSql (cmd, false));
+
+ HyenaSqliteCommand cmd2 = new HyenaSqliteCommand ("select foo from bar where baz = ?, bar = ?, boo = ?");
+ Assert.AreEqual ("select foo from bar where baz = NULL, bar = NULL, boo = 22", GetGeneratedSql (cmd2, null, null, 22));
+
+ HyenaSqliteCommand cmd3 = new HyenaSqliteCommand ("select foo from bar where id in (?) and foo not in (?)");
+ Assert.AreEqual ("select foo from bar where id in (1,2,4) and foo not in ('foo','baz')",
+ GetGeneratedSql (cmd3, new int [] {1, 2, 4}, new string [] {"foo", "baz"}));
+ }
+
+ static PropertyInfo tf = typeof(HyenaSqliteCommand).GetProperty ("CurrentSqlText", BindingFlags.Instance | BindingFlags.NonPublic);
+ private static string GetGeneratedSql (HyenaSqliteCommand cmd, params object [] p)
+ {
+ return tf.GetValue ((new HyenaSqliteCommand (cmd.Text, p)), null) as string;
+ }
+
+ private static string GetGeneratedSql (HyenaSqliteCommand cmd)
+ {
+ return tf.GetValue (cmd, null) as string;
}
-
- Assert.AreEqual ("select foo from bar where baz = 'a', bbz = 32, this = '22'", GetGeneratedSql (cmd));
- }
-
- [Test]
- public void TestConstructor ()
- {
- HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?, bbz = ?, this = ?", "a", 32, "22");
- Assert.AreEqual ("select foo from bar where baz = 'a', bbz = 32, this = '22'", GetGeneratedSql (cmd));
- }
-
- [Test]
- public void TestCultureInvariant ()
- {
- HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?", 32.2);
- Assert.AreEqual ("select foo from bar where baz = 32.2", GetGeneratedSql (cmd));
- }
-
- [Test]
- public void TestParameterSerialization ()
- {
- HyenaSqliteCommand cmd = new HyenaSqliteCommand ("select foo from bar where baz = ?");
-
- Assert.AreEqual ("select foo from bar where baz = NULL", GetGeneratedSql (cmd, null));
- Assert.AreEqual ("select foo from bar where baz = 'It''s complicated, \"but\" ''''why not''''?'", GetGeneratedSql (cmd, "It's complicated, \"but\" ''why not''?"));
- Assert.AreEqual ("select foo from bar where baz = 0", GetGeneratedSql (cmd, new DateTime (1970, 1, 1).ToLocalTime ()));
- Assert.AreEqual ("select foo from bar where baz = 931309200", GetGeneratedSql (cmd, new DateTime (1999, 7, 7).ToLocalTime ()));
- Assert.AreEqual ("select foo from bar where baz = 555.55", GetGeneratedSql (cmd, 555.55f));
- Assert.AreEqual ("select foo from bar where baz = 555.55", GetGeneratedSql (cmd, 555.55));
- Assert.AreEqual ("select foo from bar where baz = 555", GetGeneratedSql (cmd, 555));
- Assert.AreEqual ("select foo from bar where baz = 1", GetGeneratedSql (cmd, true));
- Assert.AreEqual ("select foo from bar where baz = 0", GetGeneratedSql (cmd, false));
-
- HyenaSqliteCommand cmd2 = new HyenaSqliteCommand ("select foo from bar where baz = ?, bar = ?, boo = ?");
- Assert.AreEqual ("select foo from bar where baz = NULL, bar = NULL, boo = 22", GetGeneratedSql (cmd2, null, null, 22));
-
- HyenaSqliteCommand cmd3 = new HyenaSqliteCommand ("select foo from bar where id in (?) and foo not in (?)");
- Assert.AreEqual ("select foo from bar where id in (1,2,4) and foo not in ('foo','baz')",
- GetGeneratedSql (cmd3, new int [] {1, 2, 4}, new string [] {"foo", "baz"}));
- }
-
- static PropertyInfo tf = typeof(HyenaSqliteCommand).GetProperty ("CurrentSqlText", BindingFlags.Instance | BindingFlags.NonPublic);
- private static string GetGeneratedSql (HyenaSqliteCommand cmd, params object [] p)
- {
- return tf.GetValue ((new HyenaSqliteCommand (cmd.Text, p)), null) as string;
- }
-
- private static string GetGeneratedSql (HyenaSqliteCommand cmd)
- {
- return tf.GetValue (cmd, null) as string;
}
}
+
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs (from r3928, /trunk/banshee/tests/Hyena/SqliteModelProviderTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/SqliteModelProviderTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs Mon May 19 21:34:45 2008
@@ -26,198 +26,205 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using System.Data;
using System.IO;
using NUnit.Framework;
using Hyena.Data.Sqlite;
-[TestFixture]
-public class SqliteModelProviderTests
+namespace Hyena.Data.Sqlite.Tests
{
- private HyenaSqliteConnection connection;
- private ModelProvider provider;
-
- [TestFixtureSetUp]
- public void Init ()
- {
- connection = new HyenaSqliteConnection ("test.db");
- provider = new ModelProvider (connection);
- }
-
- [TestFixtureTearDown]
- public void Dispose ()
- {
- connection.Dispose ();
- File.Delete ("test.db");
- }
-
- [Test]
- public void TestIntMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicIntField = 3141592;
- newed_item.PublicIntProperty = 13;
- newed_item.SetPrivateIntField (128);
- newed_item.SetPrivateIntProperty (42);
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicIntField, loaded_item.PublicIntField);
- Assert.AreEqual (newed_item.PublicIntProperty, loaded_item.PublicIntProperty);
- Assert.AreEqual (newed_item.GetPrivateIntField (), loaded_item.GetPrivateIntField ());
- Assert.AreEqual (newed_item.GetPrivateIntProperty (), loaded_item.GetPrivateIntProperty ());
- }
-
- [Test]
- public void TestLongMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicLongField = 4926227057;
- newed_item.PublicLongProperty = -932;
- newed_item.SetPrivateLongField (3243);
- newed_item.SetPrivateLongProperty (1);
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicLongField, loaded_item.PublicLongField);
- Assert.AreEqual (newed_item.PublicLongProperty, loaded_item.PublicLongProperty);
- Assert.AreEqual (newed_item.GetPrivateLongField (), loaded_item.GetPrivateLongField ());
- Assert.AreEqual (newed_item.GetPrivateLongProperty (), loaded_item.GetPrivateLongProperty ());
- }
-
- [Test]
- public void TestStringMembers ()
+ [TestFixture]
+ public class SqliteModelProviderTests
{
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicStringField = "Surely you're joking, Mr. Feynman.";
- newed_item.PublicStringProperty = "Even as a splitted bark, so sunder we: This way fall I to death.";
- newed_item.SetPrivateStringField ("Who is John Galt?");
- newed_item.SetPrivateStringProperty ("The most formidable weapon against errors of every kind is Reason.");
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicStringField, loaded_item.PublicStringField);
- Assert.AreEqual (newed_item.PublicStringProperty, loaded_item.PublicStringProperty);
- Assert.AreEqual (newed_item.GetPrivateStringField (), loaded_item.GetPrivateStringField ());
- Assert.AreEqual (newed_item.GetPrivateStringProperty (), loaded_item.GetPrivateStringProperty ());
- }
-
- [Test]
- public void TestNullStringMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicStringField = null;
- newed_item.PublicStringProperty = null;
- newed_item.SetPrivateStringField (null);
- newed_item.SetPrivateStringProperty (null);
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicStringField, loaded_item.PublicStringField);
- Assert.AreEqual (newed_item.PublicStringProperty, loaded_item.PublicStringProperty);
- Assert.AreEqual (newed_item.GetPrivateStringField (), loaded_item.GetPrivateStringField ());
- Assert.AreEqual (newed_item.GetPrivateStringProperty (), loaded_item.GetPrivateStringProperty ());
- }
-
- // Some fidelity is lost in the conversion from DT to DB time format
- private void AssertArePrettyClose (DateTime time1, DateTime time2)
- {
- Assert.AreEqual (time1.Year, time2.Year);
- Assert.AreEqual (time1.Month, time2.Month);
- Assert.AreEqual (time1.Day, time2.Day);
- Assert.AreEqual (time1.Hour, time2.Hour);
- Assert.AreEqual (time1.Minute, time2.Minute);
- Assert.AreEqual (time1.Second, time2.Second);
- }
-
- [Test]
- public void TestDateTimeMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicDateTimeField = DateTime.Now;
- newed_item.PublicDateTimeProperty = new DateTime (1986, 4, 23);
- newed_item.SetPrivateDateTimeField (DateTime.MinValue);
- newed_item.SetPrivateDateTimeProperty (DateTime.Now);
-
- provider.Save (newed_item);
-
- string command = String.Format ("SELECT PrivateDateTimeField FROM {0} WHERE PrimaryKey = {1}", provider.TableName, newed_item.PrimaryKey);
-
- using (IDataReader reader = connection.Query (command)) {
- reader.Read ();
- Assert.IsTrue (reader.IsDBNull (0));
- }
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- AssertArePrettyClose (newed_item.PublicDateTimeField, loaded_item.PublicDateTimeField);
- AssertArePrettyClose (newed_item.PublicDateTimeProperty, loaded_item.PublicDateTimeProperty);
- AssertArePrettyClose (newed_item.GetPrivateDateTimeField (), loaded_item.GetPrivateDateTimeField ());
- AssertArePrettyClose (newed_item.GetPrivateDateTimeProperty (), loaded_item.GetPrivateDateTimeProperty ());
- }
-
- [Test]
- public void TestTimeSpanMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicTimeSpanField = new TimeSpan (0, 0, 1);
- newed_item.PublicTimeSpanProperty = new TimeSpan (1, 0, 0);
- newed_item.SetPrivateTimeSpanField (new TimeSpan (1, 39, 12));
- newed_item.SetPrivateTimeSpanProperty (TimeSpan.MinValue);
-
- provider.Save (newed_item);
-
- string command = String.Format ("SELECT PrivateTimeSpanProperty FROM {0} WHERE PrimaryKey = {1}", provider.TableName, newed_item.PrimaryKey);
- using (IDataReader reader = connection.Query (command)) {
- reader.Read ();
- Assert.IsTrue (reader.IsDBNull (0));
- }
-
- // NUnit boxes and uses reference equality, rather than Equals()
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicTimeSpanField, loaded_item.PublicTimeSpanField);
- Assert.AreEqual (newed_item.PublicTimeSpanProperty, loaded_item.PublicTimeSpanProperty);
- Assert.AreEqual (newed_item.GetPrivateTimeSpanField (), loaded_item.GetPrivateTimeSpanField ());
- Assert.AreEqual (newed_item.GetPrivateTimeSpanProperty (), loaded_item.GetPrivateTimeSpanProperty ());
- }
-
- [Test]
- public void TestIntEnumMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicIntEnumField = IntEnum.Zero;
- newed_item.PublicIntEnumProperty = IntEnum.One;
- newed_item.SetPrivateIntEnumField (IntEnum.Two);
- newed_item.SetPrivateIntEnumProperty (IntEnum.Three);
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicIntEnumField, loaded_item.PublicIntEnumField);
- Assert.AreEqual (newed_item.PublicIntEnumProperty, loaded_item.PublicIntEnumProperty);
- Assert.AreEqual (newed_item.GetPrivateIntEnumField (), loaded_item.GetPrivateIntEnumField ());
- Assert.AreEqual (newed_item.GetPrivateIntEnumProperty (), loaded_item.GetPrivateIntEnumProperty ());
- }
+ private HyenaSqliteConnection connection;
+ private ModelProvider provider;
+
+ [TestFixtureSetUp]
+ public void Init ()
+ {
+ connection = new HyenaSqliteConnection ("test.db");
+ provider = new ModelProvider (connection);
+ }
+
+ [TestFixtureTearDown]
+ public void Dispose ()
+ {
+ connection.Dispose ();
+ File.Delete ("test.db");
+ }
+
+ [Test]
+ public void IntMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicIntField = 3141592;
+ newed_item.PublicIntProperty = 13;
+ newed_item.SetPrivateIntField (128);
+ newed_item.SetPrivateIntProperty (42);
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicIntField, loaded_item.PublicIntField);
+ Assert.AreEqual (newed_item.PublicIntProperty, loaded_item.PublicIntProperty);
+ Assert.AreEqual (newed_item.GetPrivateIntField (), loaded_item.GetPrivateIntField ());
+ Assert.AreEqual (newed_item.GetPrivateIntProperty (), loaded_item.GetPrivateIntProperty ());
+ }
+
+ [Test]
+ public void LongMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicLongField = 4926227057;
+ newed_item.PublicLongProperty = -932;
+ newed_item.SetPrivateLongField (3243);
+ newed_item.SetPrivateLongProperty (1);
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicLongField, loaded_item.PublicLongField);
+ Assert.AreEqual (newed_item.PublicLongProperty, loaded_item.PublicLongProperty);
+ Assert.AreEqual (newed_item.GetPrivateLongField (), loaded_item.GetPrivateLongField ());
+ Assert.AreEqual (newed_item.GetPrivateLongProperty (), loaded_item.GetPrivateLongProperty ());
+ }
+
+ [Test]
+ public void StringMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicStringField = "Surely you're joking, Mr. Feynman.";
+ newed_item.PublicStringProperty = "Even as a splitted bark, so sunder we: This way fall I to death.";
+ newed_item.SetPrivateStringField ("Who is John Galt?");
+ newed_item.SetPrivateStringProperty ("The most formidable weapon against errors of every kind is Reason.");
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicStringField, loaded_item.PublicStringField);
+ Assert.AreEqual (newed_item.PublicStringProperty, loaded_item.PublicStringProperty);
+ Assert.AreEqual (newed_item.GetPrivateStringField (), loaded_item.GetPrivateStringField ());
+ Assert.AreEqual (newed_item.GetPrivateStringProperty (), loaded_item.GetPrivateStringProperty ());
+ }
- [Test]
- public void TestLongEnumMembers ()
- {
- DbBoundType newed_item = new DbBoundType ();
- newed_item.PublicLongEnumField = LongEnum.Cero;
- newed_item.PublicLongEnumProperty = LongEnum.Uno;
- newed_item.SetPrivateLongEnumField (LongEnum.Dos);
- newed_item.SetPrivateLongEnumProperty (LongEnum.Tres);
-
- provider.Save (newed_item);
-
- DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
- Assert.AreEqual (newed_item.PublicLongEnumField, loaded_item.PublicLongEnumField);
- Assert.AreEqual (newed_item.PublicLongEnumProperty, loaded_item.PublicLongEnumProperty);
- Assert.AreEqual (newed_item.GetPrivateLongEnumField (), loaded_item.GetPrivateLongEnumField ());
- Assert.AreEqual (newed_item.GetPrivateLongEnumProperty (), loaded_item.GetPrivateLongEnumProperty ());
+ [Test]
+ public void NullStringMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicStringField = null;
+ newed_item.PublicStringProperty = null;
+ newed_item.SetPrivateStringField (null);
+ newed_item.SetPrivateStringProperty (null);
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicStringField, loaded_item.PublicStringField);
+ Assert.AreEqual (newed_item.PublicStringProperty, loaded_item.PublicStringProperty);
+ Assert.AreEqual (newed_item.GetPrivateStringField (), loaded_item.GetPrivateStringField ());
+ Assert.AreEqual (newed_item.GetPrivateStringProperty (), loaded_item.GetPrivateStringProperty ());
+ }
+
+ // Some fidelity is lost in the conversion from DT to DB time format
+ private void AssertArePrettyClose (DateTime time1, DateTime time2)
+ {
+ Assert.AreEqual (time1.Year, time2.Year);
+ Assert.AreEqual (time1.Month, time2.Month);
+ Assert.AreEqual (time1.Day, time2.Day);
+ Assert.AreEqual (time1.Hour, time2.Hour);
+ Assert.AreEqual (time1.Minute, time2.Minute);
+ Assert.AreEqual (time1.Second, time2.Second);
+ }
+
+ [Test]
+ public void DateTimeMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicDateTimeField = DateTime.Now;
+ newed_item.PublicDateTimeProperty = new DateTime (1986, 4, 23);
+ newed_item.SetPrivateDateTimeField (DateTime.MinValue);
+ newed_item.SetPrivateDateTimeProperty (DateTime.Now);
+
+ provider.Save (newed_item);
+
+ string command = String.Format ("SELECT PrivateDateTimeField FROM {0} WHERE PrimaryKey = {1}", provider.TableName, newed_item.PrimaryKey);
+
+ using (IDataReader reader = connection.Query (command)) {
+ reader.Read ();
+ Assert.IsTrue (reader.IsDBNull (0));
+ }
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ AssertArePrettyClose (newed_item.PublicDateTimeField, loaded_item.PublicDateTimeField);
+ AssertArePrettyClose (newed_item.PublicDateTimeProperty, loaded_item.PublicDateTimeProperty);
+ AssertArePrettyClose (newed_item.GetPrivateDateTimeField (), loaded_item.GetPrivateDateTimeField ());
+ AssertArePrettyClose (newed_item.GetPrivateDateTimeProperty (), loaded_item.GetPrivateDateTimeProperty ());
+ }
+
+ [Test]
+ public void TimeSpanMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicTimeSpanField = new TimeSpan (0, 0, 1);
+ newed_item.PublicTimeSpanProperty = new TimeSpan (1, 0, 0);
+ newed_item.SetPrivateTimeSpanField (new TimeSpan (1, 39, 12));
+ newed_item.SetPrivateTimeSpanProperty (TimeSpan.MinValue);
+
+ provider.Save (newed_item);
+
+ string command = String.Format ("SELECT PrivateTimeSpanProperty FROM {0} WHERE PrimaryKey = {1}", provider.TableName, newed_item.PrimaryKey);
+ using (IDataReader reader = connection.Query (command)) {
+ reader.Read ();
+ Assert.IsTrue (reader.IsDBNull (0));
+ }
+
+ // NUnit boxes and uses reference equality, rather than Equals()
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicTimeSpanField, loaded_item.PublicTimeSpanField);
+ Assert.AreEqual (newed_item.PublicTimeSpanProperty, loaded_item.PublicTimeSpanProperty);
+ Assert.AreEqual (newed_item.GetPrivateTimeSpanField (), loaded_item.GetPrivateTimeSpanField ());
+ Assert.AreEqual (newed_item.GetPrivateTimeSpanProperty (), loaded_item.GetPrivateTimeSpanProperty ());
+ }
+
+ [Test]
+ public void IntEnumMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicIntEnumField = IntEnum.Zero;
+ newed_item.PublicIntEnumProperty = IntEnum.One;
+ newed_item.SetPrivateIntEnumField (IntEnum.Two);
+ newed_item.SetPrivateIntEnumProperty (IntEnum.Three);
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicIntEnumField, loaded_item.PublicIntEnumField);
+ Assert.AreEqual (newed_item.PublicIntEnumProperty, loaded_item.PublicIntEnumProperty);
+ Assert.AreEqual (newed_item.GetPrivateIntEnumField (), loaded_item.GetPrivateIntEnumField ());
+ Assert.AreEqual (newed_item.GetPrivateIntEnumProperty (), loaded_item.GetPrivateIntEnumProperty ());
+ }
+
+ [Test]
+ public void LongEnumMembers ()
+ {
+ DbBoundType newed_item = new DbBoundType ();
+ newed_item.PublicLongEnumField = LongEnum.Cero;
+ newed_item.PublicLongEnumProperty = LongEnum.Uno;
+ newed_item.SetPrivateLongEnumField (LongEnum.Dos);
+ newed_item.SetPrivateLongEnumProperty (LongEnum.Tres);
+
+ provider.Save (newed_item);
+
+ DbBoundType loaded_item = provider.FetchSingle (newed_item.PrimaryKey);
+ Assert.AreEqual (newed_item.PublicLongEnumField, loaded_item.PublicLongEnumField);
+ Assert.AreEqual (newed_item.PublicLongEnumProperty, loaded_item.PublicLongEnumProperty);
+ Assert.AreEqual (newed_item.GetPrivateLongEnumField (), loaded_item.GetPrivateLongEnumField ());
+ Assert.AreEqual (newed_item.GetPrivateLongEnumProperty (), loaded_item.GetPrivateLongEnumProperty ());
+ }
}
}
+
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs (from r3928, /trunk/banshee/tests/Hyena/QueryTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/QueryTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Query/Tests/QueryTests.cs Mon May 19 21:34:45 2008
@@ -26,99 +26,107 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using System.Reflection;
using NUnit.Framework;
using Hyena.Query;
-using Banshee.Query;
-[TestFixture]
-public class QueryTests : BansheeTests
+namespace Hyena.Query.Tests
{
- [Test]
- public void TestQueryValueSql ()
- {
- QueryValue qv;
-
- qv = new DateQueryValue (); qv.ParseUserQuery ("2007-03-9");
- Assert.AreEqual (new DateTime (2007, 3, 9), qv.Value);
- Assert.AreEqual ("2007-03-09", qv.ToUserQuery ());
- Assert.AreEqual ("1173420000", qv.ToSql ());
-
- qv = new StringQueryValue (); qv.ParseUserQuery ("foo 'bar'");
- Assert.AreEqual ("foo 'bar'", qv.Value);
- Assert.AreEqual ("foo 'bar'", qv.ToUserQuery ());
- Assert.AreEqual ("foo ''bar''", qv.ToSql ());
-
- qv = new IntegerQueryValue (); qv.ParseUserQuery ("22");
- Assert.AreEqual (22, qv.Value);
- Assert.AreEqual ("22", qv.ToUserQuery ());
- Assert.AreEqual ("22", qv.ToSql ());
-
- qv = new FileSizeQueryValue (); qv.ParseUserQuery ("2048 KB");
- Assert.AreEqual (2097152, qv.Value);
- Assert.AreEqual ("2.048 KB", qv.ToUserQuery ());
- Assert.AreEqual ("2097152", qv.ToSql ());
-
- // TODO this will break once an it_IT translation for "days ago" etc is committed
- qv = new RelativeTimeSpanQueryValue (); qv.ParseUserQuery ("2 days ago");
- Assert.AreEqual (-172800, qv.Value);
- Assert.AreEqual ("2 days ago", qv.ToUserQuery ());
-
- // TODO this will break once an it_IT translation for "minutes" etc is committed
- qv = new TimeSpanQueryValue (); qv.ParseUserQuery ("4 minutes");
- Assert.AreEqual (240, qv.Value);
- Assert.AreEqual ("4 minutes", qv.ToUserQuery ());
- Assert.AreEqual ("240000", qv.ToSql ());
- }
-
- [Test]
- public void TestQueryParsing ()
- {
- string [] tests = new string [] {
- "foo",
- "foo bar",
- "foo -bar",
- "-foo -bar",
- "-(foo bar)",
- "-(foo or bar)",
- "-(foo (-bar or baz))",
- "-(foo (-bar or -baz))",
- "artist:foo",
- "-artist:foo",
- "-artist!=foo",
- "duration>\"2 minutes\"",
- "rating>3",
- "-rating>3",
- "artist:baz -album:bar",
- "artist:baz -album:bar",
- "artist:baz (rating>3 or rating<2)",
- };
-
- AssertForEach<string> (tests, UserQueryParsesAndGenerates);
- }
-
- [Test]
- public void TestCustomFormatParenthesisBugFixed ()
- {
- QueryValue val = new StringQueryValue ();
- val.ParseUserQuery ("mp3");
-
- Assert.AreEqual (
- "(CoreTracks.MimeType LIKE '%mp3%' OR CoreTracks.Uri LIKE '%mp3%')",
- BansheeQuery.MimeTypeField.ToSql (StringQueryValue.Contains, val)
- );
- }
-
- private static void UserQueryParsesAndGenerates (string query)
+ [TestFixture]
+ public class QueryTests : Hyena.Tests.TestBase
{
- QueryNode node = UserQueryParser.Parse (query, BansheeQuery.FieldSet);
- if (query == null || query.Trim () == String.Empty) {
- Assert.AreEqual (node, null);
- return;
+ [Test]
+ public void QueryValueSql ()
+ {
+ QueryValue qv;
+
+ qv = new DateQueryValue (); qv.ParseUserQuery ("2007-03-9");
+ Assert.AreEqual (new DateTime (2007, 3, 9), qv.Value);
+ Assert.AreEqual ("2007-03-09", qv.ToUserQuery ());
+ Assert.AreEqual ("1173420000", qv.ToSql ());
+
+ qv = new StringQueryValue (); qv.ParseUserQuery ("foo 'bar'");
+ Assert.AreEqual ("foo 'bar'", qv.Value);
+ Assert.AreEqual ("foo 'bar'", qv.ToUserQuery ());
+ Assert.AreEqual ("foo ''bar''", qv.ToSql ());
+
+ qv = new IntegerQueryValue (); qv.ParseUserQuery ("22");
+ Assert.AreEqual (22, qv.Value);
+ Assert.AreEqual ("22", qv.ToUserQuery ());
+ Assert.AreEqual ("22", qv.ToSql ());
+
+ qv = new FileSizeQueryValue (); qv.ParseUserQuery ("2048 KB");
+ Assert.AreEqual (2097152, qv.Value);
+ Assert.AreEqual ("2.048 KB", qv.ToUserQuery ());
+ Assert.AreEqual ("2097152", qv.ToSql ());
+
+ // TODO this will break once an it_IT translation for "days ago" etc is committed
+ qv = new RelativeTimeSpanQueryValue (); qv.ParseUserQuery ("2 days ago");
+ Assert.AreEqual (-172800, qv.Value);
+ Assert.AreEqual ("2 days ago", qv.ToUserQuery ());
+
+ // TODO this will break once an it_IT translation for "minutes" etc is committed
+ qv = new TimeSpanQueryValue (); qv.ParseUserQuery ("4 minutes");
+ Assert.AreEqual (240, qv.Value);
+ Assert.AreEqual ("4 minutes", qv.ToUserQuery ());
+ Assert.AreEqual ("240000", qv.ToSql ());
+ }
+
+ [Test]
+ public void QueryParsing ()
+ {
+ string [] tests = new string [] {
+ "foo",
+ "foo bar",
+ "foo -bar",
+ "-foo -bar",
+ "-(foo bar)",
+ "-(foo or bar)",
+ "-(foo (-bar or baz))",
+ "-(foo (-bar or -baz))",
+ "artist:foo",
+ "-artist:foo",
+ "-artist!=foo",
+ "duration>\"2 minutes\"",
+ "rating>3",
+ "-rating>3",
+ "artist:baz -album:bar",
+ "artist:baz -album:bar",
+ "artist:baz (rating>3 or rating<2)",
+ };
+
+ AssertForEach<string> (tests, UserQueryParsesAndGenerates);
+ }
+
+ [Test]
+ public void CustomFormatParenthesisBugFixed ()
+ {
+ Assert.Fail ("gabe is lame and should fix this. kthx, --aaron");
+ /*QueryValue val = new StringQueryValue ();
+ val.ParseUserQuery ("mp3");
+
+ Assert.AreEqual (
+ "(CoreTracks.MimeType LIKE '%mp3%' OR CoreTracks.Uri LIKE '%mp3%')",
+ BansheeQuery.MimeTypeField.ToSql (StringQueryValue.Contains, val)
+ );*/
+ }
+
+ private static void UserQueryParsesAndGenerates (string query)
+ {
+ Assert.Fail ("gabe is lame and should fix this. kthx, --aaron");
+ /*QueryNode node = UserQueryParser.Parse (query, BansheeQuery.FieldSet);
+ if (query == null || query.Trim () == String.Empty) {
+ Assert.AreEqual (node, null);
+ return;
+ }
+
+ Assert.AreEqual (query, node.ToUserQuery ());*/
}
-
- Assert.AreEqual (query, node.ToUserQuery ());
}
}
+
+#endif
Modified: trunk/banshee/src/Libraries/Hyena/Hyena.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Hyena/Hyena.mdp (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.mdp Mon May 19 21:34:45 2008
@@ -87,11 +87,21 @@
<File name="Hyena.Query/NullQueryValue.cs" subtype="Code" buildaction="Compile" />
<File name="Hyena.Query/RelativeTimeSpanQueryValue.cs" subtype="Code" buildaction="Compile" />
<File name="Hyena.Query/TimeSpanQueryValue.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Collections/Tests/IntervalHeapTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Collections/Tests/RangeCollectionTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Data.Sqlite/Tests/DbBoundType.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena.Query/Tests/QueryTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena/Tests/CryptoUtilTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena/Tests/StringUtilTests.cs" subtype="Code" buildaction="Compile" />
+ <File name="Hyena/Tests/TestBase.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ProjectReference type="Gac" localcopy="True" refto="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ProjectReference type="Gac" localcopy="True" refto="Mono.Data.Sqlite, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+ <ProjectReference type="Gac" localcopy="True" refto="nunit.core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77" />
</References>
<Deployment.LinuxDeployData generateScript="False" />
<MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="Makefile.am">
Copied: trunk/banshee/src/Libraries/Hyena/Hyena/Tests/CryptoUtilTests.cs (from r3928, /trunk/banshee/tests/Hyena/CryptoUtilTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/CryptoUtilTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena/Tests/CryptoUtilTests.cs Mon May 19 21:34:45 2008
@@ -26,26 +26,32 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using NUnit.Framework;
using Hyena;
-[TestFixture]
-public class CryptoUtilTests
+namespace Hyena.Tests
{
- [Test]
- public void Md5Encode ()
- {
- Assert.AreEqual ("ae2b1fca515949e5d54fb22b8ed95575", CryptoUtil.Md5Encode ("testing"));
- }
-
- [Test]
- public void IsMd5Encoded ()
+ [TestFixture]
+ internal class CryptoUtilTests
{
- Assert.IsTrue (CryptoUtil.IsMd5Encoded ("ae2b1fca515949e5d54fb22b8ed95575"));
- Assert.IsFalse (CryptoUtil.IsMd5Encoded ("abc233"));
- Assert.IsFalse (CryptoUtil.IsMd5Encoded ("lebowski"));
- Assert.IsFalse (CryptoUtil.IsMd5Encoded ("ae2b1fca515949e5g54fb22b8ed95575"));
+ [Test]
+ public void Md5Encode ()
+ {
+ Assert.AreEqual ("ae2b1fca515949e5d54fb22b8ed95575", CryptoUtil.Md5Encode ("testing"));
+ }
+
+ [Test]
+ public void IsMd5Encoded ()
+ {
+ Assert.IsTrue (CryptoUtil.IsMd5Encoded ("ae2b1fca515949e5d54fb22b8ed95575"));
+ Assert.IsFalse (CryptoUtil.IsMd5Encoded ("abc233"));
+ Assert.IsFalse (CryptoUtil.IsMd5Encoded ("lebowski"));
+ Assert.IsFalse (CryptoUtil.IsMd5Encoded ("ae2b1fca515949e5g54fb22b8ed95575"));
+ }
}
}
+#endif
Copied: trunk/banshee/src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs (from r3928, /trunk/banshee/tests/Hyena/StringUtilTests.cs)
==============================================================================
--- /trunk/banshee/tests/Hyena/StringUtilTests.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena/Tests/StringUtilTests.cs Mon May 19 21:34:45 2008
@@ -27,92 +27,99 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using NUnit.Framework;
using Hyena;
-
-[TestFixture]
-public class StringUtilTests
+
+namespace Hyena.Tests
{
- private class Map
+ [TestFixture]
+ public class StringUtilTests
{
- public Map (string camel, string under)
+ private class Map
{
- Camel = camel;
- Under = under;
+ public Map (string camel, string under)
+ {
+ Camel = camel;
+ Under = under;
+ }
+
+ public string Camel;
+ public string Under;
}
-
- public string Camel;
- public string Under;
- }
-
- private Map [] u_to_c_maps = new Map [] {
- new Map ("Hello", "hello"),
- new Map ("HelloWorld", "hello_world"),
- new Map ("HelloWorld", "hello__world"),
- new Map ("HelloWorld", "hello___world"),
- new Map ("HelloWorld", "hello____world"),
- new Map ("HelloWorld", "_hello_world"),
- new Map ("HelloWorld", "__hello__world"),
- new Map ("HelloWorld", "___hello_world_"),
- new Map ("HelloWorldHowAreYou", "_hello_World_HOW_ARE__YOU__"),
- new Map (null, ""),
- new Map ("H", "h")
- };
-
- [Test]
- public void TestUnderCaseToCamelCase ()
- {
- foreach (Map map in u_to_c_maps) {
- Assert.AreEqual (map.Camel, StringUtil.UnderCaseToCamelCase (map.Under));
+
+ private Map [] u_to_c_maps = new Map [] {
+ new Map ("Hello", "hello"),
+ new Map ("HelloWorld", "hello_world"),
+ new Map ("HelloWorld", "hello__world"),
+ new Map ("HelloWorld", "hello___world"),
+ new Map ("HelloWorld", "hello____world"),
+ new Map ("HelloWorld", "_hello_world"),
+ new Map ("HelloWorld", "__hello__world"),
+ new Map ("HelloWorld", "___hello_world_"),
+ new Map ("HelloWorldHowAreYou", "_hello_World_HOW_ARE__YOU__"),
+ new Map (null, ""),
+ new Map ("H", "h")
+ };
+
+ [Test]
+ public void UnderCaseToCamelCase ()
+ {
+ foreach (Map map in u_to_c_maps) {
+ Assert.AreEqual (map.Camel, StringUtil.UnderCaseToCamelCase (map.Under));
+ }
}
- }
-
- private Map [] c_to_u_maps = new Map [] {
- new Map ("Hello", "hello"),
- new Map ("HelloWorld", "hello_world"),
- new Map ("HiWorldHowAreYouDoingToday", "hi_world_how_are_you_doing_today"),
- new Map ("SRSLYHowAreYou", "srsly_how_are_you"),
- new Map ("OMGThisShitIsBananas", "omg_this_shit_is_bananas"),
- new Map ("KTHXBAI", "kthxbai"),
- new Map ("nereid.track_view_columns.MusicLibrarySource-Library/composer", "nereid.track_view_columns._music_library_source_-_library/composer"),
- new Map ("", null),
- new Map ("H", "h")
- };
-
- [Test]
- public void TestCamelCaseToUnderCase ()
- {
- foreach (Map map in c_to_u_maps) {
- Assert.AreEqual (map.Under, StringUtil.CamelCaseToUnderCase (map.Camel));
+
+ private Map [] c_to_u_maps = new Map [] {
+ new Map ("Hello", "hello"),
+ new Map ("HelloWorld", "hello_world"),
+ new Map ("HiWorldHowAreYouDoingToday", "hi_world_how_are_you_doing_today"),
+ new Map ("SRSLYHowAreYou", "srsly_how_are_you"),
+ new Map ("OMGThisShitIsBananas", "omg_this_shit_is_bananas"),
+ new Map ("KTHXBAI", "kthxbai"),
+ new Map ("nereid.track_view_columns.MusicLibrarySource-Library/composer", "nereid.track_view_columns._music_library_source_-_library/composer"),
+ new Map ("", null),
+ new Map ("H", "h")
+ };
+
+ [Test]
+ public void CamelCaseToUnderCase ()
+ {
+ foreach (Map map in c_to_u_maps) {
+ Assert.AreEqual (map.Under, StringUtil.CamelCaseToUnderCase (map.Camel));
+ }
+ }
+
+ [Test]
+ public void DoubleToTenthsPrecision ()
+ {
+ // Note we are testing with locale = it_IT, hence the commas
+ Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (15.0));
+ Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (15.0334));
+ Assert.AreEqual ("15,1", StringUtil.DoubleToTenthsPrecision (15.052));
+ Assert.AreEqual ("15,5", StringUtil.DoubleToTenthsPrecision (15.5234));
+ Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (14.9734));
+ Assert.AreEqual ("14,9", StringUtil.DoubleToTenthsPrecision (14.92));
+ Assert.AreEqual ("0,4", StringUtil.DoubleToTenthsPrecision (0.421));
+ Assert.AreEqual ("0", StringUtil.DoubleToTenthsPrecision (0.01));
+ Assert.AreEqual ("1.000,3", StringUtil.DoubleToTenthsPrecision (1000.32));
+ Assert.AreEqual ("9.233", StringUtil.DoubleToTenthsPrecision (9233));
+ }
+
+ [Test]
+ public void DoubleToPluralInt ()
+ {
+ // This method helps us pluralize doubles. Probably a horrible i18n idea.
+ Assert.AreEqual (0, StringUtil.DoubleToPluralInt (0));
+ Assert.AreEqual (1, StringUtil.DoubleToPluralInt (1));
+ Assert.AreEqual (2, StringUtil.DoubleToPluralInt (2));
+ Assert.AreEqual (1, StringUtil.DoubleToPluralInt (0.5));
+ Assert.AreEqual (2, StringUtil.DoubleToPluralInt (1.8));
+ Assert.AreEqual (22, StringUtil.DoubleToPluralInt (21.3));
}
- }
-
- [Test]
- public void TestDoubleToTenthsPrecision ()
- {
- // Note we are testing with locale = it_IT, hence the commas
- Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (15.0));
- Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (15.0334));
- Assert.AreEqual ("15,1", StringUtil.DoubleToTenthsPrecision (15.052));
- Assert.AreEqual ("15,5", StringUtil.DoubleToTenthsPrecision (15.5234));
- Assert.AreEqual ("15", StringUtil.DoubleToTenthsPrecision (14.9734));
- Assert.AreEqual ("14,9", StringUtil.DoubleToTenthsPrecision (14.92));
- Assert.AreEqual ("0,4", StringUtil.DoubleToTenthsPrecision (0.421));
- Assert.AreEqual ("0", StringUtil.DoubleToTenthsPrecision (0.01));
- Assert.AreEqual ("1.000,3", StringUtil.DoubleToTenthsPrecision (1000.32));
- Assert.AreEqual ("9.233", StringUtil.DoubleToTenthsPrecision (9233));
- }
-
- [Test]
- public void TestDoubleToPluralInt ()
- {
- // This method helps us pluralize doubles. Probably a horrible i18n idea.
- Assert.AreEqual (0, StringUtil.DoubleToPluralInt (0));
- Assert.AreEqual (1, StringUtil.DoubleToPluralInt (1));
- Assert.AreEqual (2, StringUtil.DoubleToPluralInt (2));
- Assert.AreEqual (1, StringUtil.DoubleToPluralInt (0.5));
- Assert.AreEqual (2, StringUtil.DoubleToPluralInt (1.8));
- Assert.AreEqual (22, StringUtil.DoubleToPluralInt (21.3));
}
}
+
+#endif
Added: trunk/banshee/src/Libraries/Hyena/Hyena/Tests/TestBase.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Libraries/Hyena/Hyena/Tests/TestBase.cs Mon May 19 21:34:45 2008
@@ -0,0 +1,101 @@
+//
+// BansheeTests.cs
+//
+// Author:
+// Gabriel Burt <gburt novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if ENABLE_TESTS
+
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Threading;
+
+using NUnit.Framework;
+
+using Hyena;
+
+namespace Hyena.Tests
+{
+ public struct TransformPair<F, T>
+ {
+ public F From;
+ public T To;
+
+ public TransformPair (F from, T to)
+ {
+ From = from;
+ To = to;
+ }
+
+ public static TransformPair<F, T> [] GetFrom (params object [] objects)
+ {
+ TransformPair<F, T> [] pairs = new TransformPair<F, T> [objects.Length / 2];
+ for (int i = 0; i < objects.Length; i += 2) {
+ pairs[i/2] = new TransformPair<F, T> ((F)objects[i], (T)objects[i+1]);
+ }
+ return pairs;
+ }
+
+ public override string ToString ()
+ {
+ return From.ToString ();
+ }
+ }
+
+ public delegate To Transform<F, To> (F from);
+
+ public abstract class TestBase
+ {
+ private string bin_dir;
+ public string BinDir {
+ get { return bin_dir ?? (bin_dir = Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location)); }
+ }
+
+ public static void AssertForEach<T> (IEnumerable<T> objects, Action<T> runner)
+ {
+ System.Text.StringBuilder sb = new System.Text.StringBuilder ();
+ foreach (T o in objects) {
+ try { runner (o); }
+ catch (AssertionException e) { sb.AppendFormat ("Failed assertion on {0}: {1}\n", o, e.Message); }
+ catch (Exception e) { sb.AppendFormat ("\nCaught exception on {0}: {1}\n", o, e.ToString ()); }
+ }
+
+ if (sb.Length > 0)
+ Assert.Fail ("\n" + sb.ToString ());
+ }
+
+ // Fails to compile, causes SIGABRT in gmcs; boo
+ /*public static void AssertTransformsEach<A, B> (IEnumerable<TransformPair<A, B>> pairs, Transform<A, B> transform)
+ {
+ AssertForEach (pairs, delegate (TransformPair<A, B> pair) {
+ Assert.AreEqual (pair.To, transform (pair.From));
+ });
+ }*/
+ }
+}
+
+#endif
Modified: trunk/banshee/src/Libraries/Hyena/Makefile.am
==============================================================================
--- trunk/banshee/src/Libraries/Hyena/Makefile.am (original)
+++ trunk/banshee/src/Libraries/Hyena/Makefile.am Mon May 19 21:34:45 2008
@@ -7,6 +7,8 @@
Hyena.Collections/RangeCollection.cs \
Hyena.Collections/Selection.cs \
Hyena.Collections/SelectionProxy.cs \
+ Hyena.Collections/Tests/IntervalHeapTests.cs \
+ Hyena.Collections/Tests/RangeCollectionTests.cs \
Hyena.CommandLine/CommandLineParser.cs \
Hyena.CommandLine/Layout.cs \
Hyena.CommandLine/LayoutGroup.cs \
@@ -20,6 +22,9 @@
Hyena.Data.Sqlite/SqliteModelCache.cs \
Hyena.Data.Sqlite/SqliteModelProvider.cs \
Hyena.Data.Sqlite/SqliteUtils.cs \
+ Hyena.Data.Sqlite/Tests/DbBoundType.cs \
+ Hyena.Data.Sqlite/Tests/SqliteCommandTests.cs \
+ Hyena.Data.Sqlite/Tests/SqliteModelProviderTests.cs \
Hyena.Data/ArrayModelCache.cs \
Hyena.Data/ColumnDescription.cs \
Hyena.Data/DictionaryModelCache.cs \
@@ -54,6 +59,7 @@
Hyena.Query/QueryValue.cs \
Hyena.Query/RelativeTimeSpanQueryValue.cs \
Hyena.Query/StringQueryValue.cs \
+ Hyena.Query/Tests/QueryTests.cs \
Hyena.Query/TimeSpanQueryValue.cs \
Hyena.Query/UserQueryParser.cs \
Hyena.Query/XmlQueryParser.cs \
@@ -79,6 +85,9 @@
Hyena/IUndoAction.cs \
Hyena/Log.cs \
Hyena/StringUtil.cs \
+ Hyena/Tests/CryptoUtilTests.cs \
+ Hyena/Tests/StringUtilTests.cs \
+ Hyena/Tests/TestBase.cs \
Hyena/Timer.cs \
Hyena/UndoManager.cs
Modified: trunk/banshee/src/Libraries/Migo/Makefile.am
==============================================================================
--- trunk/banshee/src/Libraries/Migo/Makefile.am (original)
+++ trunk/banshee/src/Libraries/Migo/Makefile.am Mon May 19 21:34:45 2008
@@ -40,6 +40,7 @@
Migo/Migo.Syndication/OpmlParser.cs \
Migo/Migo.Syndication/Rfc822DateTime.cs \
Migo/Migo.Syndication/RssParser.cs \
+ Migo/Migo.Syndication/Tests/XmlTests.cs \
Migo/Migo.Syndication/XmlUtils.cs \
Migo/Migo.TaskCore/AsyncCommandQueue/AsyncCommandQueue.cs \
Migo/Migo.TaskCore/AsyncCommandQueue/CommandDelegate.cs \
Modified: trunk/banshee/src/Libraries/Migo/Migo.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Migo/Migo.mdp (original)
+++ trunk/banshee/src/Libraries/Migo/Migo.mdp Mon May 19 21:34:45 2008
@@ -74,6 +74,8 @@
<File name="Migo/Migo.Syndication/MigoItem.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/MigoModelProvider.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/OpmlParser.cs" subtype="Code" buildaction="Compile" />
+ <File name="Migo/Migo.Syndication/Tests" subtype="Directory" buildaction="Compile" />
+ <File name="Migo/Migo.Syndication/Tests/XmlTests.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Copied: trunk/banshee/src/Libraries/Migo/Migo/Migo.Syndication/Tests/XmlTests.cs (from r3928, /trunk/banshee/tests/Migo/XmlTests.cs)
==============================================================================
--- /trunk/banshee/tests/Migo/XmlTests.cs (original)
+++ trunk/banshee/src/Libraries/Migo/Migo/Migo.Syndication/Tests/XmlTests.cs Mon May 19 21:34:45 2008
@@ -26,54 +26,63 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if ENABLE_TESTS
+
using System;
using NUnit.Framework;
using Migo.Syndication;
-[TestFixture]
-public class XmlTests : BansheeTests
-{
- [Test]
- public void TestParseDates ()
- {
- TransformPair<string, DateTime> [] pairs = TransformPair<string, DateTime>.GetFrom (
- "Fri, 22 Feb 2008 16:00:00 EST", DateTime.Parse ("22/02/2008 5.00.00"),
- "Fri, 15 Feb 2008 4:10:00 EST", DateTime.Parse ("14/02/2008 17.10.00"),
- "Tue, 08 Apr 2008 03:37:04 -0400", DateTime.Parse ("07/04/2008 18.37.04"),
- "Tue, 26 Feb 2008 03:28:51 -0500", DateTime.Parse ("25/02/2008 16.28.51"),
- "Sun, 11 May 2008 01:33:26 -0400", DateTime.Parse ("10/05/2008 16.33.26"),
- "Fri, 16 May 2008 16:09:10 -0500", DateTime.Parse ("16/05/2008 6.09.10"),
- "Fri, 14 Mar 2008 13:44:53 -0500", DateTime.Parse ("14/03/2008 3.44.53"),
- "Fri, 07 December 2007 17:00:00 EST", DateTime.Parse ("07/12/2007 6.00.00"),
- "Sat, 08 Mar 2008 12:00:00 EST", DateTime.Parse ("08/03/2008 1.00.00"),
- "Sat, 17 May 2008 20:47:57 +0000", DateTime.Parse ("17/05/2008 15.47.57"),
- "Sat, 17 May 2008 19:33:42 +0000", DateTime.Parse ("17/05/2008 14.33.42")
- );
-
- AssertForEach (pairs, delegate (TransformPair<string, DateTime> pair) {
- Assert.AreEqual (pair.To, Rfc822DateTime.Parse (pair.From));
- });
- }
+using Hyena.Tests;
- [Test]
- public void TestParseITunesDuration ()
+namespace Migo.Syndication.Tests
+{
+ [TestFixture]
+ public class XmlTests : TestBase
{
- TransformPair<string, TimeSpan> [] pairs = TransformPair<string, TimeSpan>.GetFrom (
- null, TimeSpan.Zero,
- "", TimeSpan.Zero,
- "0", TimeSpan.Zero,
- "0:0", TimeSpan.Zero,
- "0:0:0", TimeSpan.Zero,
- "1:0:0", new TimeSpan (1, 0, 0),
- "363", new TimeSpan (0, 0, 363),
- "2:45", new TimeSpan (0, 2, 45),
- "1:02:22", new TimeSpan (1, 2, 22),
- "9:0:0", new TimeSpan (9, 0, 0)
- );
-
- AssertForEach (pairs, delegate (TransformPair<string, TimeSpan> pair) {
- Assert.AreEqual (pair.To, XmlUtils.GetITunesDuration (pair.From));
- });
+ [Test]
+ public void TestParseDates ()
+ {
+ TransformPair<string, DateTime> [] pairs = TransformPair<string, DateTime>.GetFrom (
+ "Fri, 22 Feb 2008 16:00:00 EST", DateTime.Parse ("22/02/2008 5.00.00"),
+ "Fri, 15 Feb 2008 4:10:00 EST", DateTime.Parse ("14/02/2008 17.10.00"),
+ "Tue, 08 Apr 2008 03:37:04 -0400", DateTime.Parse ("07/04/2008 18.37.04"),
+ "Tue, 26 Feb 2008 03:28:51 -0500", DateTime.Parse ("25/02/2008 16.28.51"),
+ "Sun, 11 May 2008 01:33:26 -0400", DateTime.Parse ("10/05/2008 16.33.26"),
+ "Fri, 16 May 2008 16:09:10 -0500", DateTime.Parse ("16/05/2008 6.09.10"),
+ "Fri, 14 Mar 2008 13:44:53 -0500", DateTime.Parse ("14/03/2008 3.44.53"),
+ "Fri, 07 December 2007 17:00:00 EST", DateTime.Parse ("07/12/2007 6.00.00"),
+ "Sat, 08 Mar 2008 12:00:00 EST", DateTime.Parse ("08/03/2008 1.00.00"),
+ "Sat, 17 May 2008 20:47:57 +0000", DateTime.Parse ("17/05/2008 15.47.57"),
+ "Sat, 17 May 2008 19:33:42 +0000", DateTime.Parse ("17/05/2008 14.33.42")
+ );
+
+ AssertForEach (pairs, delegate (TransformPair<string, DateTime> pair) {
+ Assert.AreEqual (pair.To, Rfc822DateTime.Parse (pair.From));
+ });
+ }
+
+ [Test]
+ public void TestParseITunesDuration ()
+ {
+ TransformPair<string, TimeSpan> [] pairs = TransformPair<string, TimeSpan>.GetFrom (
+ null, TimeSpan.Zero,
+ "", TimeSpan.Zero,
+ "0", TimeSpan.Zero,
+ "0:0", TimeSpan.Zero,
+ "0:0:0", TimeSpan.Zero,
+ "1:0:0", new TimeSpan (1, 0, 0),
+ "363", new TimeSpan (0, 0, 363),
+ "2:45", new TimeSpan (0, 2, 45),
+ "1:02:22", new TimeSpan (1, 2, 22),
+ "9:0:0", new TimeSpan (9, 0, 0)
+ );
+
+ AssertForEach (pairs, delegate (TransformPair<string, TimeSpan> pair) {
+ Assert.AreEqual (pair.To, XmlUtils.GetITunesDuration (pair.From));
+ });
+ }
}
}
+
+#endif
Copied: trunk/banshee/src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests/XspfTests.cs (from r3928, /trunk/banshee/tests/Banshee.Services/Xspf/Xspf.cs)
==============================================================================
--- /trunk/banshee/tests/Banshee.Services/Xspf/Xspf.cs (original)
+++ trunk/banshee/src/Libraries/Mono.Media/Media.Playlists.Xspf/Tests/XspfTests.cs Mon May 19 21:34:45 2008
@@ -1,93 +1,124 @@
+//
+// XspfTests.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if ENABLE_TESTS
+
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using NUnit.Framework;
-using Banshee.Playlists.Formats.Xspf;
+using Media.Playlists.Xspf;
-namespace Banshee.Playlists.Formats.Xspf.Tests
+namespace Media.Playlists.Xspf.Tests
{
- [TestFixture]
- public class XspfTest
- {
- private const string complete_path = "Banshee.Services/Xspf/complete.xml";
- private const string xsd_path = "Banshee.Services/Xspf/xspf-1.xsd";
-
- [Test]
- public void Load()
- {
- Playlist playlist = new Playlist();
- playlist.Load(complete_path);
- Helper.TestPlaylist(playlist);
- }
-
- [Test]
- public void Validate()
- {
- XmlReaderSettings settings = new XmlReaderSettings();
- settings.ValidationType = ValidationType.Schema;
- XmlSchemaSet schema_set = new XmlSchemaSet();
- schema_set.Add("http://xspf.org/ns/0/", xsd_path);
- settings.Schemas.Add(schema_set);
- settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
- XmlReader reader = XmlReader.Create(complete_path, settings);
- while(reader.Read());
- }
- }
-
- public static class Helper
- {
- public static void TestPlaylist(Playlist playlist)
- {
- Assert.AreEqual("Playlist Title", playlist.Title);
- Assert.AreEqual("Aaron Bockover", playlist.Creator);
- Assert.AreEqual("Comment", playlist.Annotation);
-
- Uri uri = new Uri("http://abock.org/");
-
- Assert.AreEqual(uri, playlist.Location);
- Assert.AreEqual(uri, playlist.Identifier);
- Assert.AreEqual(uri, playlist.Image);
- Assert.AreEqual(uri, playlist.License);
-
- Assert.AreEqual(W3CDateTime.Parse("2005-01-08T17:10:47-05:00").LocalTime, playlist.Date);
-
- Assert.AreEqual(2, playlist.Meta.Count);
- foreach(MetaEntry meta in playlist.Meta) {
- Assert.AreEqual(new Uri("http://abock.org/fruit"), meta.Rel);
- if(meta.Value != "Apples" && meta.Value != "Oranges") {
- Assert.Fail("Expected one of 'Apples' or 'Oranges'");
- }
- }
-
- Assert.AreEqual(2, playlist.Links.Count);
- foreach(LinkEntry link in playlist.Links) {
- if(!link.Rel.AbsoluteUri.StartsWith("http://abock.org")) {
- Assert.Fail("Incorrect rel, expected it to start with http://abock.org");
- }
-
- if(!link.Value.AbsoluteUri.StartsWith("http://abock.org")) {
- Assert.Fail("Incorrect content, expected it to start with http://abock.org");
- }
- }
-
- Assert.AreEqual(1, playlist.Tracks.Count);
-
- Track track = playlist.Tracks[0];
- Assert.AreEqual("Track 1", track.Title);
- Assert.AreEqual("Aaron Bockover", track.Creator);
- Assert.AreEqual("Comment", track.Annotation);
- Assert.AreEqual("Album", track.Album);
-
- Assert.AreEqual(uri, track.Info);
- Assert.AreEqual(uri, track.Image);
-
- Assert.AreEqual(11, track.TrackNumber);
- Assert.AreEqual(TimeSpan.FromMilliseconds(5159), track.Duration);
-
- Assert.AreEqual(2, track.Locations.Count);
- }
- }
+ [TestFixture]
+ public class XspfTest
+ {
+ private const string complete_path = "../tests/Mono.Media/Xspf/complete.xml";
+ private const string xsd_path = "../tests/Mono.Media/Xspf/xspf-1.xsd";
+
+ [Test]
+ public void Load()
+ {
+ Playlist playlist = new Playlist();
+ playlist.Load(complete_path);
+ Helper.TestPlaylist(playlist);
+ }
+
+ [Test]
+ public void Validate()
+ {
+ XmlReaderSettings settings = new XmlReaderSettings();
+ settings.ValidationType = ValidationType.Schema;
+ XmlSchemaSet schema_set = new XmlSchemaSet();
+ schema_set.Add("http://xspf.org/ns/0/", xsd_path);
+ settings.Schemas.Add(schema_set);
+ settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
+ XmlReader reader = XmlReader.Create(complete_path, settings);
+ while(reader.Read());
+ }
+ }
+
+ public static class Helper
+ {
+ public static void TestPlaylist(Playlist playlist)
+ {
+ Assert.AreEqual("Playlist Title", playlist.Title);
+ Assert.AreEqual("Aaron Bockover", playlist.Creator);
+ Assert.AreEqual("Comment", playlist.Annotation);
+
+ Uri uri = new Uri("http://abock.org/");
+
+ Assert.AreEqual(uri, playlist.Location);
+ Assert.AreEqual(uri, playlist.Identifier);
+ Assert.AreEqual(uri, playlist.Image);
+ Assert.AreEqual(uri, playlist.License);
+
+ Assert.AreEqual(W3CDateTime.Parse("2005-01-08T17:10:47-05:00").LocalTime, playlist.Date);
+
+ Assert.AreEqual(2, playlist.Meta.Count);
+ foreach(MetaEntry meta in playlist.Meta) {
+ Assert.AreEqual(new Uri("http://abock.org/fruit"), meta.Rel);
+ if(meta.Value != "Apples" && meta.Value != "Oranges") {
+ Assert.Fail("Expected one of 'Apples' or 'Oranges'");
+ }
+ }
+
+ Assert.AreEqual(2, playlist.Links.Count);
+ foreach(LinkEntry link in playlist.Links) {
+ if(!link.Rel.AbsoluteUri.StartsWith("http://abock.org")) {
+ Assert.Fail("Incorrect rel, expected it to start with http://abock.org");
+ }
+
+ if(!link.Value.AbsoluteUri.StartsWith("http://abock.org")) {
+ Assert.Fail("Incorrect content, expected it to start with http://abock.org");
+ }
+ }
+
+ Assert.AreEqual(1, playlist.Tracks.Count);
+
+ Track track = playlist.Tracks[0];
+ Assert.AreEqual("Track 1", track.Title);
+ Assert.AreEqual("Aaron Bockover", track.Creator);
+ Assert.AreEqual("Comment", track.Annotation);
+ Assert.AreEqual("Album", track.Album);
+
+ Assert.AreEqual(uri, track.Info);
+ Assert.AreEqual(uri, track.Image);
+
+ Assert.AreEqual(11, track.TrackNumber);
+ Assert.AreEqual(TimeSpan.FromMilliseconds(5159), track.Duration);
+
+ Assert.AreEqual(2, track.Locations.Count);
+ }
+ }
}
+#endif
Modified: trunk/banshee/src/Libraries/Mono.Media/Mono.Media.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Mono.Media/Mono.Media.mdp (original)
+++ trunk/banshee/src/Libraries/Mono.Media/Mono.Media.mdp Mon May 19 21:34:45 2008
@@ -15,6 +15,8 @@
<File name="Media.Playlists.Xspf/W3CDateTime.cs" subtype="Code" buildaction="Compile" />
<File name="Media.Playlists.Xspf/XmlUtil.cs" subtype="Code" buildaction="Compile" />
<File name="Media.Playlists.Xspf/XspfBaseObject.cs" subtype="Code" buildaction="Compile" />
+ <File name="Media.Playlists.Xspf/Tests" subtype="Directory" buildaction="Compile" />
+ <File name="Media.Playlists.Xspf/Tests/XspfTests.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]