-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 0549956
Showing
12 changed files
with
2,154 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,208 @@ | ||
## Ignore Visual Studio temporary files, build results, and | ||
## files generated by popular Visual Studio add-ons. | ||
|
||
# User-specific files | ||
*.suo | ||
*.user | ||
*.userosscache | ||
*.sln.docstates | ||
|
||
# User-specific files (MonoDevelop/Xamarin Studio) | ||
*.userprefs | ||
|
||
# Build results | ||
[Dd]ebug/ | ||
[Dd]ebugPublic/ | ||
[Rr]elease/ | ||
[Rr]eleases/ | ||
x64/ | ||
x86/ | ||
build/ | ||
bld/ | ||
[Bb]in/ | ||
[Oo]bj/ | ||
|
||
# Visual Studio 2015 cache/options directory | ||
.vs/ | ||
|
||
# MSTest test Results | ||
[Tt]est[Rr]esult*/ | ||
[Bb]uild[Ll]og.* | ||
|
||
# NUNIT | ||
*.VisualState.xml | ||
TestResult.xml | ||
|
||
# Build Results of an ATL Project | ||
[Dd]ebugPS/ | ||
[Rr]eleasePS/ | ||
dlldata.c | ||
|
||
# DNX | ||
project.lock.json | ||
artifacts/ | ||
|
||
*_i.c | ||
*_p.c | ||
*_i.h | ||
*.ilk | ||
*.meta | ||
*.obj | ||
*.pch | ||
*.pdb | ||
*.pgc | ||
*.pgd | ||
*.rsp | ||
*.sbr | ||
*.tlb | ||
*.tli | ||
*.tlh | ||
*.tmp | ||
*.tmp_proj | ||
*.log | ||
*.vspscc | ||
*.vssscc | ||
.builds | ||
*.pidb | ||
*.svclog | ||
*.scc | ||
|
||
# Chutzpah Test files | ||
_Chutzpah* | ||
|
||
# Visual C++ cache files | ||
ipch/ | ||
*.aps | ||
*.ncb | ||
*.opensdf | ||
*.sdf | ||
*.cachefile | ||
|
||
# Visual Studio profiler | ||
*.psess | ||
*.vsp | ||
*.vspx | ||
|
||
# TFS 2012 Local Workspace | ||
$tf/ | ||
|
||
# Guidance Automation Toolkit | ||
*.gpState | ||
|
||
# ReSharper is a .NET coding add-in | ||
_ReSharper*/ | ||
*.[Rr]e[Ss]harper | ||
*.DotSettings.user | ||
|
||
# JustCode is a .NET coding add-in | ||
.JustCode | ||
|
||
# TeamCity is a build add-in | ||
_TeamCity* | ||
|
||
# DotCover is a Code Coverage Tool | ||
*.dotCover | ||
|
||
# NCrunch | ||
_NCrunch_* | ||
.*crunch*.local.xml | ||
|
||
# MightyMoose | ||
*.mm.* | ||
AutoTest.Net/ | ||
|
||
# Web workbench (sass) | ||
.sass-cache/ | ||
|
||
# Installshield output folder | ||
[Ee]xpress/ | ||
|
||
# DocProject is a documentation generator add-in | ||
DocProject/buildhelp/ | ||
DocProject/Help/*.HxT | ||
DocProject/Help/*.HxC | ||
DocProject/Help/*.hhc | ||
DocProject/Help/*.hhk | ||
DocProject/Help/*.hhp | ||
DocProject/Help/Html2 | ||
DocProject/Help/html | ||
|
||
# Click-Once directory | ||
publish/ | ||
|
||
# Publish Web Output | ||
*.[Pp]ublish.xml | ||
*.azurePubxml | ||
# TODO: Comment the next line if you want to checkin your web deploy settings | ||
# but database connection strings (with potential passwords) will be unencrypted | ||
*.pubxml | ||
*.publishproj | ||
|
||
# NuGet Packages | ||
*.nupkg | ||
# The packages folder can be ignored because of Package Restore | ||
**/packages/* | ||
# except build/, which is used as an MSBuild target. | ||
!**/packages/build/ | ||
# Uncomment if necessary however generally it will be regenerated when needed | ||
#!**/packages/repositories.config | ||
|
||
# Windows Azure Build Output | ||
csx/ | ||
*.build.csdef | ||
|
||
# Windows Store app package directory | ||
AppPackages/ | ||
|
||
# Visual Studio cache files | ||
# files ending in .cache can be ignored | ||
*.[Cc]ache | ||
# but keep track of directories ending in .cache | ||
!*.[Cc]ache/ | ||
|
||
# Others | ||
ClientBin/ | ||
[Ss]tyle[Cc]op.* | ||
~$* | ||
*~ | ||
*.dbmdl | ||
*.dbproj.schemaview | ||
*.pfx | ||
*.publishsettings | ||
node_modules/ | ||
orleans.codegen.cs | ||
|
||
# RIA/Silverlight projects | ||
Generated_Code/ | ||
|
||
# Backup & report files from converting an old project file | ||
# to a newer Visual Studio version. Backup files are not needed, | ||
# because we have git ;-) | ||
_UpgradeReport_Files/ | ||
Backup*/ | ||
UpgradeLog*.XML | ||
UpgradeLog*.htm | ||
|
||
# SQL Server files | ||
*.mdf | ||
*.ldf | ||
|
||
# Business Intelligence projects | ||
*.rdl.data | ||
*.bim.layout | ||
*.bim_*.settings | ||
|
||
# Microsoft Fakes | ||
FakesAssemblies/ | ||
|
||
# Node.js Tools for Visual Studio | ||
.ntvs_analysis.dat | ||
|
||
# Visual Studio 6 build log | ||
*.plg | ||
|
||
# Visual Studio 6 workspace options file | ||
*.opt | ||
|
||
gitpull.txt | ||
gitpush.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Reflection; | ||
|
||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace SSISUnitTesting | ||
{ | ||
using System; | ||
using System.Globalization; | ||
|
||
public class ExternalFileResourceTestBase | ||
{ | ||
private List<string> _temporaryFiles; | ||
|
||
[TestInitialize] | ||
public virtual void Setup() | ||
{ | ||
this._temporaryFiles = new List<string>(); | ||
} | ||
|
||
[TestCleanup] | ||
public void Teardown() | ||
{ | ||
foreach (var temporaryFile in this._temporaryFiles) | ||
{ | ||
Helper.DeletePath(temporaryFile); | ||
} | ||
} | ||
|
||
protected string GetTempPath(string folderName, bool createFolder) | ||
{ | ||
var tempPath = Path.Combine(Path.GetTempPath(), folderName); | ||
this._temporaryFiles.Add(tempPath); | ||
if (createFolder) | ||
{ | ||
Directory.CreateDirectory(tempPath); | ||
} | ||
|
||
return tempPath; | ||
} | ||
|
||
protected string GetTempPath(string folderName) | ||
{ | ||
return GetTempPath(folderName, false); | ||
} | ||
|
||
protected string CreateTempFile(string folder, string fileName) | ||
{ | ||
return CreateTempFile(folder, fileName, string.Empty); | ||
} | ||
|
||
protected string CreateTempFile(string folder, string fileName, string content) | ||
{ | ||
var filePath = Path.Combine(folder, fileName); | ||
this._temporaryFiles.Add(filePath); | ||
File.WriteAllText(filePath, content); | ||
return filePath; | ||
} | ||
|
||
protected string GetTemporaryFile() | ||
{ | ||
var tempFile = Path.GetTempFileName(); | ||
this._temporaryFiles.Add(tempFile); | ||
return tempFile; | ||
} | ||
|
||
protected string GetTemporaryFileName() | ||
{ | ||
var tempFile = GetTemporaryFile(); | ||
File.Delete(tempFile); | ||
return tempFile; | ||
} | ||
|
||
protected string UnpackToString(string assemblyResource) | ||
{ | ||
string result; | ||
var stream = GetResourceStream(assemblyResource); | ||
|
||
using (var sr = new StreamReader(stream)) | ||
{ | ||
using (var sw = new StringWriter()) | ||
{ | ||
sw.Write(sr.ReadToEnd()); | ||
sw.Flush(); | ||
result = sw.ToString(); | ||
} | ||
} | ||
|
||
return result; | ||
} | ||
|
||
private static Stream GetResourceStream(string assemblyResource) | ||
{ | ||
var assembly = Assembly.GetExecutingAssembly(); | ||
var stream = assembly.GetManifestResourceStream(assemblyResource); | ||
if (stream == null) | ||
{ | ||
throw new ArgumentException( | ||
string.Format(CultureInfo.CurrentCulture, "The resource ({0}) could not be found.", assemblyResource), | ||
"assemblyResource"); | ||
} | ||
|
||
return stream; | ||
} | ||
|
||
#if (SQL2005) | ||
protected string UnpackToFile(string packageResource) | ||
{ | ||
return UnpackToFile(packageResource, false); | ||
} | ||
|
||
protected string UnpackToFile(string packageResource, bool writeBytes) | ||
#else | ||
protected string UnpackToFile(string packageResource, bool writeBytes = false) | ||
#endif | ||
{ | ||
var tempFileName = Path.GetTempFileName(); | ||
var stream = GetResourceStream(packageResource); | ||
|
||
if (writeBytes) | ||
{ | ||
return UnpackBytesToFile(stream, tempFileName); | ||
} | ||
|
||
using (var sr = new StreamReader(stream)) | ||
{ | ||
using (StreamWriter sw = File.CreateText(tempFileName)) | ||
{ | ||
sw.Write(sr.ReadToEnd()); | ||
sw.Flush(); | ||
} | ||
} | ||
|
||
return tempFileName; | ||
} | ||
|
||
private string UnpackBytesToFile(Stream stream, string filename) | ||
{ | ||
using (FileStream file = File.Create(filename)) | ||
{ | ||
CopyTo(stream, file); | ||
} | ||
|
||
return filename; | ||
} | ||
|
||
private void CopyTo(Stream input, Stream output) | ||
{ | ||
byte[] buffer = new byte[8 * 1024]; | ||
int bytesRead; | ||
|
||
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) | ||
{ | ||
output.Write(buffer, 0, bytesRead); | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.