@@ -157,16 +157,51 @@ public void TestGeneralFrameworkMonikerNonExistent()
157157 MockEngine engine = new MockEngine ( ) ;
158158 GetReferenceAssemblyPaths getReferencePaths = new GetReferenceAssemblyPaths ( ) ;
159159 getReferencePaths . BuildEngine = engine ;
160- // Make a framework which does not exist, intentional mispelling of framework
160+ // Make a framework which does not exist, intentional misspelling of framework
161161 getReferencePaths . TargetFrameworkMoniker = ".NetFramewok, Version=v99.0" ;
162- getReferencePaths . Execute ( ) ;
162+ bool success = getReferencePaths . Execute ( ) ;
163+ Assert . False ( success ) ;
164+ string [ ] returnedPaths = getReferencePaths . ReferenceAssemblyPaths ;
165+ Assert . Equal ( 0 , returnedPaths . Length ) ;
166+ string displayName = getReferencePaths . TargetFrameworkMonikerDisplayName ;
167+ Assert . Null ( displayName ) ;
168+ FrameworkNameVersioning frameworkMoniker = new FrameworkNameVersioning ( getReferencePaths . TargetFrameworkMoniker ) ;
169+ string message = ResourceUtilities . FormatResourceString ( "GetReferenceAssemblyPaths.NoReferenceAssemblyDirectoryFound" , frameworkMoniker . ToString ( ) ) ;
170+ engine . AssertLogContains ( "ERROR MSB3644: " + message ) ;
171+ }
172+
173+ /// <summary>
174+ /// Test the case where the target framework moniker is empty when using MSBUILDWARNONNOREFERENCEASSEMBLYDIRECTORY
175+ /// override. Expect there to be a warning logged.
176+ /// TODO: This should be removed for Dev15 (override feature removed)
177+ /// </summary>
178+ [ Fact ]
179+ public void TestGeneralFrameworkMonikerNonExistentOverrideError ( )
180+ {
181+ MockEngine engine = new MockEngine ( ) ;
182+ GetReferenceAssemblyPaths getReferencePaths = new GetReferenceAssemblyPaths ( ) ;
183+ getReferencePaths . BuildEngine = engine ;
184+ // Make a framework which does not exist, intentional misspelling of framework
185+ getReferencePaths . TargetFrameworkMoniker = ".NetFramewok, Version=v99.0" ;
186+
187+ try
188+ {
189+ Environment . SetEnvironmentVariable ( "MSBUILDWARNONNOREFERENCEASSEMBLYDIRECTORY" , "1" ) ;
190+ bool success = getReferencePaths . Execute ( ) ;
191+ Assert . True ( success ) ;
192+ }
193+ finally
194+ {
195+ Environment . SetEnvironmentVariable ( "MSBUILDWARNONNOREFERENCEASSEMBLYDIRECTORY" , null ) ;
196+ }
197+
163198 string [ ] returnedPaths = getReferencePaths . ReferenceAssemblyPaths ;
164199 Assert . Equal ( 0 , returnedPaths . Length ) ;
165200 string displayName = getReferencePaths . TargetFrameworkMonikerDisplayName ;
166201 Assert . Null ( displayName ) ;
167202 FrameworkNameVersioning frameworkMoniker = new FrameworkNameVersioning ( getReferencePaths . TargetFrameworkMoniker ) ;
168203 string message = ResourceUtilities . FormatResourceString ( "GetReferenceAssemblyPaths.NoReferenceAssemblyDirectoryFound" , frameworkMoniker . ToString ( ) ) ;
169- engine . AssertLogContains ( message ) ;
204+ engine . AssertLogContains ( "WARNING MSB3644: " + message ) ;
170205 }
171206
172207 /// <summary>
0 commit comments