Thread: [Mantisconnect-cvs] SF.net SVN: mantisconnect:[200] mantisconnect/trunk/clients/dotnet/ UnitTests
Brought to you by:
vboctor
From: <vb...@us...> - 2009-10-05 06:45:46
|
Revision: 200 http://mantisconnect.svn.sourceforge.net/mantisconnect/?rev=200&view=rev Author: vboctor Date: 2009-10-05 06:45:31 +0000 (Mon, 05 Oct 2009) Log Message: ----------- Test case to test bug #10845 in the MantisBT official bug tracker. Modified Paths: -------------- mantisconnect/trunk/clients/dotnet/UnitTests/SubmitIssues.cs mantisconnect/trunk/clients/dotnet/UnitTests/UpdateIssues.cs Modified: mantisconnect/trunk/clients/dotnet/UnitTests/SubmitIssues.cs =================================================================== --- mantisconnect/trunk/clients/dotnet/UnitTests/SubmitIssues.cs 2009-10-05 06:27:04 UTC (rev 199) +++ mantisconnect/trunk/clients/dotnet/UnitTests/SubmitIssues.cs 2009-10-05 06:45:31 UTC (rev 200) @@ -124,6 +124,8 @@ [Test] public void SubmitIssueAndCheckIt() { + const string StepsToRepro = "steps"; + const string AdditionalInfo = "additional"; int projectId = FirstProjectId; Issue issue = new Issue(); @@ -131,6 +133,8 @@ issue.Summary = GetRandomSummary(); issue.Description = GetRandomDescription(); issue.Category = new ObjectRef( GetFirstCategory( projectId ) ); + issue.StepsToReproduce = StepsToRepro; + issue.AdditionalInformation = AdditionalInfo; int issueId = Session.Request.IssueAdd( issue ); @@ -149,9 +153,9 @@ Assert.IsTrue( issueRet.Reproducibility.Id != 0 ); Assert.IsTrue( issueRet.Projection.Id != 0 ); Assert.IsTrue( issueRet.Eta.Id != 0 ); - Assert.IsTrue( issueRet.AdditionalInformation.Length == 0 ); - Assert.IsTrue( issueRet.StepsToReproduce.Length == 0 ); - Assert.IsTrue( issueRet.Platform.Length == 0 ); + Assert.AreEqual(StepsToRepro, issueRet.StepsToReproduce); + Assert.AreEqual(AdditionalInfo, issueRet.AdditionalInformation); + Assert.IsTrue(issueRet.Platform.Length == 0); Assert.IsTrue( issueRet.Os.Length == 0 ); Assert.IsTrue( issueRet.OsBuild.Length == 0 ); Assert.IsTrue( issueRet.FixedInVersion.Length == 0 ); Modified: mantisconnect/trunk/clients/dotnet/UnitTests/UpdateIssues.cs =================================================================== --- mantisconnect/trunk/clients/dotnet/UnitTests/UpdateIssues.cs 2009-10-05 06:27:04 UTC (rev 199) +++ mantisconnect/trunk/clients/dotnet/UnitTests/UpdateIssues.cs 2009-10-05 06:45:31 UTC (rev 200) @@ -65,6 +65,41 @@ } [Test] + public void UpdateIssueStepsAndAdditional() + { + int projectId = FirstProjectId; + + string originalSummary = GetRandomSummary(); + string newSummary = GetRandomSummary(); + + string originalDescription = GetRandomDescription(); + string newDescription = GetRandomDescription(); + + Issue issue = new Issue(); + issue.Project = new ObjectRef(projectId); + issue.Summary = originalSummary; + issue.Description = originalDescription; + issue.Category = new ObjectRef(GetFirstCategory(projectId)); + issue.AdditionalInformation = "additional"; + issue.StepsToReproduce = "steps"; + + int issueId = Session.Request.IssueAdd(issue); + + Issue issueToUpdate = Session.Request.IssueGet(issueId); + issueToUpdate.Summary = newSummary; + issueToUpdate.Description = newDescription; + issueToUpdate.StepsToReproduce = issueToUpdate.StepsToReproduce + "2"; + issueToUpdate.AdditionalInformation = issueToUpdate.AdditionalInformation + "2"; + Session.Request.IssueUpdate(issueToUpdate); + + Issue updatedIssue = Session.Request.IssueGet(issueId); + Assert.AreEqual(newSummary, updatedIssue.Summary); + Assert.AreEqual(newDescription, updatedIssue.Description); + Assert.AreEqual("additional2", updatedIssue.AdditionalInformation); + Assert.AreEqual("steps2", updatedIssue.StepsToReproduce); + } + + [Test] public void IssueCheckinNotFixed() { int projectId = FirstProjectId; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vb...@us...> - 2009-10-06 06:43:36
|
Revision: 201 http://mantisconnect.svn.sourceforge.net/mantisconnect/?rev=201&view=rev Author: vboctor Date: 2009-10-06 06:43:28 +0000 (Tue, 06 Oct 2009) Log Message: ----------- Add attachments unit tests. Modified Paths: -------------- mantisconnect/trunk/clients/dotnet/UnitTests/MantisConnect.UnitTests.csproj Added Paths: ----------- mantisconnect/trunk/clients/dotnet/UnitTests/Attachments.cs Added: mantisconnect/trunk/clients/dotnet/UnitTests/Attachments.cs =================================================================== --- mantisconnect/trunk/clients/dotnet/UnitTests/Attachments.cs (rev 0) +++ mantisconnect/trunk/clients/dotnet/UnitTests/Attachments.cs 2009-10-06 06:43:28 UTC (rev 201) @@ -0,0 +1,160 @@ +#region Copyright © 2004 Victor Boctor +// +// MantisConnect is copyrighted to Victor Boctor +// +// This program is distributed under the terms and conditions of the GPL +// See LICENSE file for details. +// +// For commercial applications to link with or modify MantisConnect, they require the +// purchase of a MantisConnect commerical license. +// +#endregion + +using System; +using System.Net; +using System.Web.Services.Protocols; + +using NUnit.Framework; + +namespace Futureware.MantisConnect.UnitTests +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + [TestFixture] + public sealed class AttachmentTestCases : BaseTestFixture + { + [TestFixtureSetUp] + public void TestFixtureSetup() + { + Connect(); + } + + [TestFixtureTearDown] + public void TestFixtureTearDown() + { + } + + [Test] + public void AddBinaryAttachment() + { + int projectId = FirstProjectId; + + Issue issue = new Issue(); + issue.Project = new ObjectRef(projectId); + issue.Summary = GetRandomSummary(); + issue.Description = GetRandomDescription(); + issue.Category = new ObjectRef(GetFirstCategory(projectId)); + + int issueId = this.SubmitIssue(issue); + + Issue retrievedIssueBeforeAdd = Session.Request.IssueGet(issueId); + Assert.AreEqual(0, retrievedIssueBeforeAdd.Attachments.Length); + + byte[] attachment = CreateBinaryAttachment(1024); + byte[] base64 = Base64Encode(attachment); + + int attachmentId = Session.Request.IssueAttachmentAdd(issueId, "blah.mpg", "video/mpeg", base64); + + byte[] retrievedAttachment = Session.Request.IssueAttachmentGet(attachmentId); + + Assert.IsNotNull(retrievedAttachment); + Assert.AreEqual(attachment.Length, retrievedAttachment.Length); + + for (int i = 0; i < attachment.Length; ++i) + { + Assert.AreEqual(attachment[i], retrievedAttachment[i]); + } + + Issue retrievedIssueAfterAdd = Session.Request.IssueGet(issueId); + + Assert.AreEqual(1, retrievedIssueAfterAdd.Attachments.Length); + + Session.Request.IssueAttachmentDelete(attachmentId); + + Issue retrievedIssueAfterDelete = Session.Request.IssueGet(issueId); + Assert.AreEqual(0, retrievedIssueAfterDelete.Attachments.Length); + + Session.Request.IssueDelete(issueId); + } + + [Test] + public void AddTextAttachment() + { + int projectId = FirstProjectId; + + Issue issue = new Issue(); + issue.Project = new ObjectRef(projectId); + issue.Summary = GetRandomSummary(); + issue.Description = GetRandomDescription(); + issue.Category = new ObjectRef(GetFirstCategory(projectId)); + + int issueId = this.SubmitIssue(issue); + byte[] attachment = CreateTextAttachment(1024); + byte[] base64 = Base64Encode(attachment); + + int attachmentId = Session.Request.IssueAttachmentAdd(issueId, "sample.txt", "text/plain", base64); + + byte[] retrievedAttachment = Session.Request.IssueAttachmentGet(attachmentId); + + Assert.IsNotNull(retrievedAttachment); + Assert.AreEqual(attachment.Length, retrievedAttachment.Length); + + for (int i = 0; i < attachment.Length; ++i) + { + Assert.AreEqual(attachment[i], retrievedAttachment[i]); + } + + Session.Request.IssueDelete(issueId); + } + + private static byte[] Base64Encode(byte[] attachment) + { + string base64String = Convert.ToBase64String(attachment); + return System.Text.UTF8Encoding.ASCII.GetBytes(base64String); + } + + private static byte[] CreateTextAttachment(int size) + { + byte[] bytes = new byte[size]; + + for (int i = 0; i < size; ++i) + { + bytes[i] = (byte)(i % 32 + 65); + } + + return bytes; + } + + private static byte[] CreateBinaryAttachment(int size) + { + byte[] bytes = new byte[size]; + + for (int i = 0; i < size; ++i) + { + bytes[i] = (byte)(i % 255); + } + + return bytes; + } + + private int SubmitIssue(Issue issue) + { + int issueId = Session.Request.IssueAdd(issue); + if (issueId > 0) + { + Assert.IsTrue(Session.Request.IssueExists(issueId)); + Assert.AreEqual(issueId, Session.Request.IssueGetLastId(issue.Project.Id)); + Assert.AreEqual(issueId, Session.Request.IssueGetIdFromSummary(issue.Summary)); + } + + return issueId; + } + + private void DeleteIssue(int issueId) + { + Session.Request.IssueDelete(issueId); + Assert.IsFalse(Session.Request.IssueExists(issueId)); + } + } +} Modified: mantisconnect/trunk/clients/dotnet/UnitTests/MantisConnect.UnitTests.csproj =================================================================== --- mantisconnect/trunk/clients/dotnet/UnitTests/MantisConnect.UnitTests.csproj 2009-10-05 06:45:31 UTC (rev 200) +++ mantisconnect/trunk/clients/dotnet/UnitTests/MantisConnect.UnitTests.csproj 2009-10-06 06:43:28 UTC (rev 201) @@ -1,7 +1,7 @@ <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <ProjectType>Local</ProjectType> - <ProductVersion>8.0.50727</ProductVersion> + <ProductVersion>9.0.30729</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{007994C8-29E4-4C9C-AF10-9DA4FBBB83E8}</ProjectGuid> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -27,6 +27,21 @@ <UpgradeBackupLocation> </UpgradeBackupLocation> <OldToolsVersion>2.0</OldToolsVersion> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <OutputPath>bin\Debug\</OutputPath> @@ -107,6 +122,7 @@ <Compile Include="AssemblyInfo.cs"> <SubType>Code</SubType> </Compile> + <Compile Include="Attachments.cs" /> <Compile Include="BaseTestFixture.cs"> <SubType>Code</SubType> </Compile> @@ -141,6 +157,33 @@ <SubType>Code</SubType> </Compile> </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <PropertyGroup> <PreBuildEvent> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |