3 // NUnit Test Cases for System.Diagnostics.EventLog
6 // Gert Driesen <driesen@users.sourceforge.net>
8 // Copyright (C) 2006 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 // - CreateEventSource2
33 // - CreateEventSource3 (2.0 only)
34 // - Exists : local file
35 // - SourceExists : local file
36 // - GetEventLogs (2 overloads)
37 // - case-insensitive tests
38 // - use temp directory for event storage on 2.0 profile
39 // - WriteEvent tests with large instanceID (and check EventID)
43 using System.Collections;
44 using System.ComponentModel;
45 using System.Diagnostics;
46 using System.Globalization;
49 using Microsoft.Win32;
51 using NUnit.Framework;
53 namespace MonoTests.System.Diagnostics
56 public class EventLogTest
59 private string _originalEventLogImpl;
60 private string _eventLogStore;
62 private const string EVENTLOG_TYPE_VAR = "MONO_EVENTLOG_TYPE";
64 // IMPORTANT: also update constants in EventLogTest
65 private const string LOCAL_FILE_IMPL = "local";
66 private const string WIN32_IMPL = "win32";
67 private const string NULL_IMPL = "null";
69 #if NET_2_0 // Environment.SetEnvironmentVariable is only available in 2.0 profile
73 if (Win32EventLogEnabled)
76 // determine temp directory for eventlog store
77 _eventLogStore = Path.Combine (Path.GetTempPath (),
78 Guid.NewGuid ().ToString ());
80 // save original eventlog implementation type (if set)
81 string _originalEventLogImpl = Environment.GetEnvironmentVariable (
84 // use local file implementation
85 Environment.SetEnvironmentVariable (EVENTLOG_TYPE_VAR, "local:"
90 public void TearDown ()
92 if (Win32EventLogEnabled)
95 // restore original eventlog implementation type
96 Environment.SetEnvironmentVariable (EVENTLOG_TYPE_VAR,
97 _originalEventLogImpl);
99 // delete temp directory for eventlog store
100 if (Directory.Exists (_eventLogStore))
101 Directory.Delete (_eventLogStore, true);
108 if (EventLogImplType == NULL_IMPL)
109 // test cannot pass with NULL implementation
112 if (EventLog.SourceExists ("monotempsource", "."))
113 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
115 if (EventLog.SourceExists ("monoothersource", "."))
116 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
118 if (EventLog.Exists ("monologtemp", "."))
119 Assert.Ignore ("Event log 'monologtemp' should not exist.");
121 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
122 EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
124 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
125 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A1");
127 Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
128 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
129 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
130 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
132 EventLog.WriteEntry ("monotempsource", "Clear1");
134 Assert.AreEqual (1, eventLog.Entries.Count, "#B1");
136 Assert.AreEqual (0, eventLog.Entries.Count, "#B2");
137 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
138 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
139 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
141 EventLog.WriteEntry ("monotempsource", "Clear2");
143 EventLog.WriteEntry ("monotempsource", "Clear3");
144 EventLog.WriteEntry ("monoothersource", "Clear4");
146 Assert.AreEqual (2, eventLog.Entries.Count, "#C1");
147 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#C2");
148 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#C3");
149 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#C4");
151 EventLogEntry entry = eventLog.Entries [0];
152 Assert.IsNotNull (entry, "#D1");
153 Assert.IsNotNull (entry.Category, "#D2");
154 Assert.AreEqual ("(0)", entry.Category, "#D3");
155 Assert.AreEqual (0, entry.CategoryNumber, "#D4");
156 Assert.IsNotNull (entry.Data, "#D5");
157 Assert.AreEqual (0, entry.Data.Length, "#D6");
158 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#D7");
159 Assert.AreEqual (0, entry.EventID, "#D8");
161 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
163 Assert.IsNotNull (entry.MachineName, "#D10");
164 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
165 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
166 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
167 Assert.AreEqual ("Clear3", entry.ReplacementStrings [0], "#D14");
168 Assert.IsNotNull (entry.Source, "#D15");
169 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
170 Assert.IsNull (entry.UserName, "#D17");
172 entry = eventLog.Entries [1];
173 Assert.IsNotNull (entry, "#E1");
174 Assert.IsNotNull (entry.Category, "#E2");
175 Assert.AreEqual ("(0)", entry.Category, "#E3");
176 Assert.AreEqual (0, entry.CategoryNumber, "#E4");
177 Assert.IsNotNull (entry.Data, "#E5");
178 Assert.AreEqual (0, entry.Data.Length, "#E6");
179 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#E7");
180 Assert.AreEqual (0, entry.EventID, "#E8");
182 Assert.AreEqual (entry.EventID, entry.InstanceId, "#E9");
184 Assert.IsNotNull (entry.MachineName, "#E10");
185 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#E11");
186 Assert.IsNotNull (entry.ReplacementStrings, "#E12");
187 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E13");
188 Assert.AreEqual ("Clear4", entry.ReplacementStrings [0], "#E14");
189 Assert.IsNotNull (entry.Source, "#E15");
190 Assert.AreEqual ("monoothersource", entry.Source, "#E16");
191 Assert.IsNull (entry.UserName, "#E17");
194 Assert.AreEqual (0, eventLog.Entries.Count, "#F1");
195 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#F2");
196 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#F3");
197 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#F4");
200 if (EventLog.Exists ("monologtemp"))
201 EventLog.Delete ("monologtemp");
206 public void Clear_Log_DoesNotExist ()
208 if (EventLogImplType == NULL_IMPL)
209 // test cannot pass with NULL implementation
212 if (EventLog.Exists ("monologtemp", "."))
213 Assert.Ignore ("Event log 'monologtemp' should not exist.");
215 using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
219 } catch (InvalidOperationException ex) {
220 // The event log 'monologtemp' on computer '.' does not exist
221 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
222 Assert.IsNotNull (ex.Message, "#3");
223 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#4");
224 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
225 Assert.IsNull (ex.InnerException, "#6");
227 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#7");
232 public void Clear_Log_Empty ()
234 if (EventLogImplType == NULL_IMPL)
235 // test cannot pass with NULL implementation
238 if (EventLog.SourceExists ("monotempsource", "."))
239 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
241 if (EventLog.SourceExists ("monoothersource", "."))
242 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
244 if (EventLog.Exists ("monologtemp", "."))
245 Assert.Ignore ("Event log 'monologtemp' should not exist.");
247 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
249 using (EventLog eventLog = new EventLog (string.Empty, ".")) {
250 EventLog.WriteEntry ("monotempsource", "Clear_Log_Empty");
252 // both source & log are not set
256 } catch (ArgumentException ex) {
257 // Log property value has not been specified.
258 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
259 Assert.IsNotNull (ex.Message, "#A3");
260 Assert.IsNull (ex.InnerException, "#A4");
262 Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
264 // set non-existing source
265 eventLog.Source = "monoothersource";
270 } catch (ArgumentException ex) {
271 // Log property value has not been specified.
272 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
273 Assert.IsNotNull (ex.Message, "#B3");
274 Assert.IsNull (ex.InnerException, "#B4");
276 Assert.AreEqual (string.Empty, eventLog.Log, "#B5");
278 // set existing source
279 eventLog.Source = "monotempsource";
281 Assert.IsTrue (eventLog.Entries.Count > 0, "#C1");
283 Assert.AreEqual ("monologtemp", eventLog.Log, "#C2");
284 Assert.AreEqual (0, eventLog.Entries.Count, "#C3");
287 if (EventLog.Exists ("monologtemp"))
288 EventLog.Delete ("monologtemp");
293 public void Clear_Source_DoesNotExist ()
295 if (EventLogImplType == NULL_IMPL)
296 // test cannot pass with NULL implementation
299 if (EventLog.SourceExists ("monotempsource", "."))
300 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
302 if (EventLog.SourceExists ("monoothersource", "."))
303 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
305 if (EventLog.Exists ("monologtemp", "."))
306 Assert.Ignore ("Event log 'monologtemp' should not exist.");
308 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
310 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monoothersource")) {
311 EventLog.WriteEntry ("monotempsource", "Clear_Source_DoesNotExist");
313 Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
315 Assert.AreEqual (0, eventLog.Entries.Count, "#2");
316 Assert.IsFalse (EventLog.SourceExists ("monoothersource", "."), "#3");
317 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#4");
318 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#5");
321 if (EventLog.Exists ("monologtemp"))
322 EventLog.Delete ("monologtemp");
327 public void Clear_Source_Empty ()
329 if (EventLogImplType == NULL_IMPL)
330 // test cannot pass with NULL implementation
333 if (EventLog.SourceExists ("monotempsource", "."))
334 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
336 if (EventLog.Exists ("monologtemp", "."))
337 Assert.Ignore ("Event log 'monologtemp' should not exist.");
339 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
341 using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
342 EventLog.WriteEntry ("monotempsource", "Clear_Source_Empty");
344 Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
346 Assert.AreEqual (0, eventLog.Entries.Count, "#2");
347 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
348 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#4");
351 if (EventLog.Exists ("monologtemp"))
352 EventLog.Delete ("monologtemp");
357 public void Clear_Source_Null ()
359 if (EventLogImplType == NULL_IMPL)
360 // test cannot pass with NULL implementation
363 if (EventLog.SourceExists ("monotempsource", "."))
364 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
366 if (EventLog.Exists ("monologtemp", "."))
367 Assert.Ignore ("Event log 'monologtemp' should not exist.");
369 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
371 using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
372 EventLog.WriteEntry ("monotempsource", "Clear_Source_Null");
374 Assert.IsTrue (eventLog.Entries.Count > 0, "#1");
376 Assert.AreEqual (0, eventLog.Entries.Count, "#2");
377 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
378 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#4");
381 if (EventLog.Exists ("monologtemp"))
382 EventLog.Delete ("monologtemp");
387 public void Constructor1 ()
389 if (EventLogImplType == NULL_IMPL)
390 // test cannot pass with NULL implementation
393 EventLog eventLog = new EventLog ();
394 Assert.IsFalse (eventLog.EnableRaisingEvents, "#1");
395 Assert.IsNotNull (eventLog.Entries, "#2");
397 eventLog.Entries.GetEnumerator ().MoveNext ();
399 } catch (ArgumentException ex) {
400 // Log property is not set (zero-length string)
401 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#3b");
402 Assert.IsNotNull (ex.Message, "#3c");
403 Assert.IsNull (ex.InnerException, "#3d");
405 Assert.IsNotNull (eventLog.Log, "#4");
406 Assert.AreEqual (string.Empty, eventLog.Log, "#5");
409 string displayName = eventLog.LogDisplayName;
410 Assert.Fail ("#6a: " + displayName);
411 } catch (InvalidOperationException ex) {
412 // Event log names must consist of printable characters and
413 // cannot contain \, *, ?, or spaces
414 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#6b");
415 Assert.IsNotNull (ex.Message, "#6c");
416 Assert.IsNull (ex.InnerException, "#6d");
419 Assert.IsNotNull (eventLog.LogDisplayName, "#6a");
420 Assert.AreEqual (string.Empty, eventLog.LogDisplayName, "#6b");
422 Assert.IsNotNull (eventLog.MachineName, "#7");
423 Assert.AreEqual (".", eventLog.MachineName, "#8");
424 Assert.IsNotNull (eventLog.Source, "#9");
425 Assert.AreEqual (string.Empty, eventLog.Source, "#10");
430 public void Constructor2 ()
432 if (EventLogImplType == NULL_IMPL)
433 // test cannot pass with NULL implementation
436 if (EventLog.SourceExists ("monotempsource", "."))
437 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
439 if (EventLog.Exists ("monologtemp", "."))
440 Assert.Ignore ("Event log 'monologtemp' should not exist.");
442 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
444 using (EventLog eventLog = new EventLog ("monologtemp")) {
445 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
446 Assert.IsNotNull (eventLog.Entries, "#B2");
447 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
448 Assert.IsNotNull (eventLog.Log, "#B4");
449 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
450 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B6");
451 Assert.IsNotNull (eventLog.MachineName, "#B7");
452 Assert.AreEqual (".", eventLog.MachineName, "#B8");
453 Assert.IsNotNull (eventLog.Source, "#B9");
454 Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
457 EventLog.Delete ("monologtemp");
462 public void Constructor2_Log_DoesNotExist ()
464 if (EventLogImplType == NULL_IMPL)
465 // test cannot pass with NULL implementation
468 if (EventLog.Exists ("monologtemp", "."))
469 Assert.Ignore ("Event log 'monologtemp' should not exist.");
471 EventLog eventLog = new EventLog ("monologtemp");
472 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
473 Assert.IsNotNull (eventLog.Entries, "#B2");
475 eventLog.Entries.GetEnumerator ().MoveNext ();
476 Assert.Fail ("#B3a");
477 } catch (InvalidOperationException ex) {
478 // The event log 'monologtemp' on computer '.' does not exist
479 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
480 Assert.IsNotNull (ex.Message, "#B3c");
481 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
482 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
483 Assert.IsNull (ex.InnerException, "#B3f");
485 Assert.IsNotNull (eventLog.Log, "#B4");
486 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
488 string displayName = eventLog.LogDisplayName;
489 Assert.Fail ("#B6a: " + displayName);
490 } catch (InvalidOperationException ex) {
491 // Cannot find Log monologtemp on computer .
492 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
493 Assert.IsNotNull (ex.Message, "#B6c");
494 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
495 Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
496 Assert.IsNull (ex.InnerException, "#B6f");
498 Assert.IsNotNull (eventLog.MachineName, "#B7");
499 Assert.AreEqual (".", eventLog.MachineName, "#B8");
500 Assert.IsNotNull (eventLog.Source, "#B9");
501 Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
506 public void Constructor2_Log_Empty ()
508 if (EventLogImplType == NULL_IMPL)
509 // test cannot pass with NULL implementation
512 EventLog eventLog = new EventLog (string.Empty);
513 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
514 Assert.IsNotNull (eventLog.Entries, "#A2");
516 eventLog.Entries.GetEnumerator ().MoveNext ();
517 Assert.Fail ("#A3a");
518 } catch (ArgumentException ex) {
519 // Log property is not set (zero-length string)
520 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
521 Assert.IsNotNull (ex.Message, "#A3c");
522 Assert.IsNull (ex.InnerException, "#A3d");
524 Assert.IsNotNull (eventLog.Log, "#A4");
525 Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
528 string displayName = eventLog.LogDisplayName;
529 Assert.Fail ("#A6a: " + displayName);
530 } catch (InvalidOperationException ex) {
531 // Event log names must consist of printable characters and
532 // cannot contain \, *, ?, or spaces
533 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
534 Assert.IsNotNull (ex.Message, "#A6c");
535 Assert.IsNull (ex.InnerException, "#A6d");
538 Assert.IsNotNull (eventLog.LogDisplayName, "#A6a");
539 Assert.AreEqual (string.Empty, eventLog.LogDisplayName, "#A6b");
541 Assert.IsNotNull (eventLog.MachineName, "#A7");
542 Assert.AreEqual (".", eventLog.MachineName, "#A8");
543 Assert.IsNotNull (eventLog.Source, "#A9");
544 Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
549 [ExpectedException (typeof (ArgumentNullException))]
550 public void Constructor2_Log_Null ()
556 public void Constructor3 ()
558 if (EventLogImplType == NULL_IMPL)
559 // test cannot pass with NULL implementation
562 if (EventLog.SourceExists ("monotempsource", "."))
563 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
565 if (EventLog.Exists ("monologtemp", "."))
566 Assert.Ignore ("Event log 'monologtemp' should not exist.");
568 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
570 using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
571 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
572 Assert.IsNotNull (eventLog.Entries, "#B2");
573 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
574 Assert.IsNotNull (eventLog.Log, "#B4");
575 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
576 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B6");
577 Assert.IsNotNull (eventLog.MachineName, "#B7");
578 Assert.AreEqual (".", eventLog.MachineName, "#B8");
579 Assert.IsNotNull (eventLog.Source, "#B9");
580 Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
583 EventLog.Delete ("monologtemp");
588 public void Constructor3_Log_DoesNotExist ()
590 if (EventLogImplType == NULL_IMPL)
591 // test cannot pass with NULL implementation
594 if (EventLog.Exists ("monologtemp", "."))
595 Assert.Ignore ("Event log 'monologtemp' should not exist.");
597 EventLog eventLog = new EventLog ("monologtemp", ".");
598 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
599 Assert.IsNotNull (eventLog.Entries, "#B2");
601 eventLog.Entries.GetEnumerator ().MoveNext ();
602 Assert.Fail ("#B3a");
603 } catch (InvalidOperationException ex) {
604 // The event log 'monologtemp' on computer '.' does not exist
605 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
606 Assert.IsNotNull (ex.Message, "#B3c");
607 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
608 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
609 Assert.IsNull (ex.InnerException, "#B3f");
611 Assert.IsNotNull (eventLog.Log, "#B4");
612 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
614 string displayName = eventLog.LogDisplayName;
615 Assert.Fail ("#B6a: " + displayName);
616 } catch (InvalidOperationException ex) {
617 // Cannot find Log monologtemp on computer .
618 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
619 Assert.IsNotNull (ex.Message, "#B6c");
620 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
621 Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
622 Assert.IsNull (ex.InnerException, "#B6f");
624 Assert.IsNotNull (eventLog.MachineName, "#B7");
625 Assert.AreEqual (".", eventLog.MachineName, "#B8");
626 Assert.IsNotNull (eventLog.Source, "#B9");
627 Assert.AreEqual (string.Empty, eventLog.Source, "#B10");
632 public void Constructor3_Log_Empty ()
634 if (EventLogImplType == NULL_IMPL)
635 // test cannot pass with NULL implementation
638 EventLog eventLog = new EventLog (string.Empty, ".");
639 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
640 Assert.IsNotNull (eventLog.Entries, "#A2");
642 eventLog.Entries.GetEnumerator ().MoveNext ();
643 Assert.Fail ("#A3a");
644 } catch (ArgumentException ex) {
645 // Log property is not set (zero-length string)
646 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
647 Assert.IsNotNull (ex.Message, "#A3c");
648 Assert.IsNull (ex.InnerException, "#A3d");
650 Assert.IsNotNull (eventLog.Log, "#A4");
651 Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
654 string displayName = eventLog.LogDisplayName;
655 Assert.Fail ("#A6a: " + displayName);
656 } catch (InvalidOperationException ex) {
657 // Event log names must consist of printable characters and
658 // cannot contain \, *, ?, or spaces
659 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
660 Assert.IsNotNull (ex.Message, "#A6c");
661 Assert.IsNull (ex.InnerException, "#A6d");
664 Assert.IsNotNull (eventLog.LogDisplayName, "#A6a");
665 Assert.AreEqual (string.Empty, eventLog.LogDisplayName, "#A6b");
667 Assert.IsNotNull (eventLog.MachineName, "#A7");
668 Assert.AreEqual (".", eventLog.MachineName, "#A8");
669 Assert.IsNotNull (eventLog.Source, "#A9");
670 Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
675 [ExpectedException (typeof (ArgumentNullException))]
676 public void Constructor3_Log_Null ()
678 new EventLog (null, ".");
682 public void Constructor3_MachineName_Empty ()
685 new EventLog ("monologtemp", string.Empty);
687 } catch (ArgumentException ex) {
688 // Invalid value '' for parameter 'machineName'
689 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
690 Assert.IsNotNull (ex.Message, "#A3");
692 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
693 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
695 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
696 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
698 Assert.IsNull (ex.InnerException, "#A6");
703 public void Constructor3_MachineName_Null ()
706 new EventLog ("monologtemp", null);
708 } catch (ArgumentException ex) {
709 // Invalid value '' for parameter 'machineName'
710 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
711 Assert.IsNotNull (ex.Message, "#A3");
713 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
714 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
716 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
717 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
719 Assert.IsNull (ex.InnerException, "#A6");
724 public void Constructor4 ()
726 if (EventLogImplType == NULL_IMPL)
727 // test cannot pass with NULL implementation
730 if (EventLog.SourceExists ("monotempsource", "."))
731 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
733 if (EventLog.Exists ("monologtemp", "."))
734 Assert.Ignore ("Event log 'monologtemp' should not exist.");
736 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
738 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
739 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
740 Assert.IsNotNull (eventLog.Entries, "#A2");
741 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
742 Assert.IsNotNull (eventLog.Log, "#A4");
743 Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
744 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
745 Assert.IsNotNull (eventLog.MachineName, "#A7");
746 Assert.AreEqual (".", eventLog.MachineName, "#A8");
747 Assert.IsNotNull (eventLog.Source, "#A9");
748 Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
751 EventLog.Delete ("monologtemp");
756 public void Constructor4_Log_DoesNotExist ()
758 if (EventLogImplType == NULL_IMPL)
759 // test cannot pass with NULL implementation
762 if (EventLog.Exists ("monologtemp", "."))
763 Assert.Ignore ("Event log 'monologtemp' should not exist.");
765 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
766 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
767 Assert.IsNotNull (eventLog.Entries, "#B2");
769 eventLog.Entries.GetEnumerator ().MoveNext ();
770 Assert.Fail ("#B3a");
771 } catch (InvalidOperationException ex) {
772 // The event log 'monologtemp' on computer '.' does not exist
773 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B3b");
774 Assert.IsNotNull (ex.Message, "#B3c");
775 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B3d");
776 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B3e");
777 Assert.IsNull (ex.InnerException, "#B3f");
779 Assert.IsNotNull (eventLog.Log, "#B4");
780 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
782 string displayName = eventLog.LogDisplayName;
783 Assert.Fail ("#B6a: " + displayName);
784 } catch (InvalidOperationException ex) {
785 // Cannot find Log monologtemp on computer .
786 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B6b");
787 Assert.IsNotNull (ex.Message, "#B6c");
788 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#B6d");
789 Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#B6e");
790 Assert.IsNull (ex.InnerException, "#B6f");
792 Assert.IsNotNull (eventLog.MachineName, "#B7");
793 Assert.AreEqual (".", eventLog.MachineName, "#B8");
794 Assert.IsNotNull (eventLog.Source, "#B9");
795 Assert.AreEqual ("monotempsource", eventLog.Source, "#B10");
800 public void Constructor4_Log_Empty ()
802 if (EventLogImplType == NULL_IMPL)
803 // test cannot pass with NULL implementation
806 if (EventLog.SourceExists ("monotempsource", "."))
807 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
809 bool applicationLogExists = EventLog.Exists ("Application");
811 EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource");
812 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
813 Assert.IsNotNull (eventLog.Entries, "#A2");
815 eventLog.Entries.GetEnumerator ().MoveNext ();
816 Assert.Fail ("#A3a");
817 } catch (ArgumentException ex) {
818 // Log property is not set (zero-length string)
819 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3b");
820 Assert.IsNotNull (ex.Message, "#A3c");
821 Assert.IsNull (ex.InnerException, "#A3d");
823 Assert.IsNotNull (eventLog.Log, "#A4");
824 Assert.AreEqual (string.Empty, eventLog.Log, "#A5");
827 string displayName = eventLog.LogDisplayName;
828 Assert.Fail ("#A6a: " + displayName);
829 } catch (InvalidOperationException ex) {
830 // Event log names must consist of printable characters and
831 // cannot contain \, *, ?, or spaces
832 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A6b");
833 Assert.IsNotNull (ex.Message, "#A6c");
834 Assert.IsNull (ex.InnerException, "#A6d");
837 Assert.IsNotNull (eventLog.LogDisplayName, "#A6a");
838 Assert.AreEqual (string.Empty, eventLog.LogDisplayName, "#A6b");
840 Assert.IsNotNull (eventLog.MachineName, "#A7");
841 Assert.AreEqual (".", eventLog.MachineName, "#A8");
842 Assert.IsNotNull (eventLog.Source, "#A9");
843 Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
846 if (!applicationLogExists) {
847 if (EventLog.Exists ("Application"))
848 EventLog.Delete ("Application");
850 if (EventLog.SourceExists ("monotempsource", "."))
851 EventLog.DeleteEventSource ("monotempsource", ".");
857 [ExpectedException (typeof (ArgumentNullException))]
858 public void Constructor4_Log_Null ()
860 new EventLog (null, ".", "monotempsource");
864 public void Constructor4_MachineName_Empty ()
867 new EventLog ("monologtemp", string.Empty, "monotempsource");
869 } catch (ArgumentException ex) {
870 // Invalid value '' for parameter 'machineName'
871 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
872 Assert.IsNotNull (ex.Message, "#A3");
874 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
875 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
877 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
878 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
880 Assert.IsNull (ex.InnerException, "#A6");
885 public void Constructor4_MachineName_Null ()
888 new EventLog ("monologtemp", null, "monotempsource");
890 } catch (ArgumentException ex) {
891 // Invalid value '' for parameter 'machineName'
892 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
893 Assert.IsNotNull (ex.Message, "#A3");
895 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
896 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
898 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
899 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
901 Assert.IsNull (ex.InnerException, "#A6");
906 public void Constructor4_Source_DoesNotExist ()
908 if (EventLogImplType == NULL_IMPL)
909 // test cannot pass with NULL implementation
912 if (EventLog.SourceExists ("monoothersource", "."))
913 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
915 if (EventLog.SourceExists ("monotempsource", "."))
916 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
918 if (EventLog.Exists ("monologtemp", "."))
919 Assert.Ignore ("Event log 'monologtemp' should not exist.");
921 EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
923 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
924 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
925 Assert.IsNotNull (eventLog.Entries, "#A2");
926 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
927 Assert.IsNotNull (eventLog.Log, "#A4");
928 Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
929 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
930 Assert.IsNotNull (eventLog.MachineName, "#A7");
931 Assert.AreEqual (".", eventLog.MachineName, "#A8");
932 Assert.IsNotNull (eventLog.Source, "#A9");
933 Assert.AreEqual ("monotempsource", eventLog.Source, "#A10");
934 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A11");
935 Assert.IsTrue (EventLog.SourceExists ("monoothersource"), "#A12");
936 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A13");
939 if (EventLog.Exists ("monologtemp"))
940 EventLog.Delete ("monologtemp");
945 public void Constructor4_Source_Empty ()
947 if (EventLogImplType == NULL_IMPL)
948 // test cannot pass with NULL implementation
951 if (EventLog.SourceExists ("monotempsource", "."))
952 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
954 if (EventLog.Exists ("monologtemp", "."))
955 Assert.Ignore ("Event log 'monologtemp' should not exist.");
957 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
959 using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
960 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
961 Assert.IsNotNull (eventLog.Entries, "#A2");
962 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
963 Assert.IsNotNull (eventLog.Log, "#A4");
964 Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
965 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
966 Assert.IsNotNull (eventLog.MachineName, "#A7");
967 Assert.AreEqual (".", eventLog.MachineName, "#A8");
968 Assert.IsNotNull (eventLog.Source, "#A9");
969 Assert.AreEqual (string.Empty, eventLog.Source, "#A10");
970 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A11");
971 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A12");
974 if (EventLog.Exists ("monologtemp"))
975 EventLog.Delete ("monologtemp");
980 public void Constructor4_Source_Null ()
982 if (EventLogImplType == NULL_IMPL)
983 // test cannot pass with NULL implementation
986 if (EventLog.SourceExists ("monotempsource", "."))
987 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
989 if (EventLog.Exists ("monologtemp", "."))
990 Assert.Ignore ("Event log 'monologtemp' should not exist.");
992 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
994 using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
995 Assert.IsFalse (eventLog.EnableRaisingEvents, "#A1");
996 Assert.IsNotNull (eventLog.Entries, "#A2");
997 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#A3");
998 Assert.IsNotNull (eventLog.Log, "#A4");
999 Assert.AreEqual ("monologtemp", eventLog.Log, "#A5");
1000 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#A6");
1001 Assert.IsNotNull (eventLog.MachineName, "#A7");
1002 Assert.AreEqual (".", eventLog.MachineName, "#A8");
1003 Assert.IsNull (eventLog.Source, "#A9");
1004 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A10");
1005 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A11");
1008 if (EventLog.Exists ("monologtemp"))
1009 EventLog.Delete ("monologtemp");
1014 public void CreateEventSource1 ()
1016 if (EventLogImplType == NULL_IMPL)
1017 // test cannot pass with NULL implementation
1020 if (EventLog.SourceExists ("monotempsource", "."))
1021 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1023 if (EventLog.SourceExists ("monologtemp", "."))
1024 Assert.Ignore ("Event log source 'monologtemp' should not exist.");
1026 if (EventLog.Exists ("monologtemp", "."))
1027 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1029 if (EventLog.Exists ("monologother", "."))
1030 Assert.Ignore ("Event log 'monologother' should not exist.");
1033 EventLog.CreateEventSource ("monotempsource", "monologtemp");
1034 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
1035 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A2");
1036 Assert.IsTrue (EventLog.SourceExists ("monologtemp", "."), "#A3");
1038 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
1039 Assert.IsFalse (eventLog.EnableRaisingEvents, "#B1");
1040 Assert.IsNotNull (eventLog.Entries, "#B2");
1041 // MSBUG: Assert.AreEqual (0, eventLog.Entries.Count, "#B3");
1042 Assert.IsNotNull (eventLog.Log, "#B4");
1043 Assert.AreEqual ("monologtemp", eventLog.Log, "#B5");
1044 Assert.IsNotNull (eventLog.LogDisplayName, "#B6");
1045 Assert.AreEqual ("monologtemp", eventLog.LogDisplayName, "#B7");
1046 Assert.IsNotNull (eventLog.MachineName, "#B8");
1047 Assert.AreEqual (".", eventLog.MachineName, "#B9");
1048 Assert.IsNotNull (eventLog.Source, "#B10");
1049 Assert.AreEqual ("monotempsource", eventLog.Source, "#B11");
1053 EventLog.CreateEventSource ("monologtemp", "monologother");
1054 Assert.Fail ("#C1");
1055 } catch (ArgumentException ex) {
1056 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
1057 Assert.IsNotNull (ex.Message, "#C3");
1058 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#C4");
1059 Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#C5");
1060 Assert.IsNull (ex.InnerException, "#C6");
1064 EventLog.CreateEventSource ("monotempsource", "monologother");
1065 Assert.Fail ("#D1");
1066 } catch (ArgumentException ex) {
1067 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
1068 Assert.IsNotNull (ex.Message, "#D3");
1069 Assert.IsTrue (ex.Message.IndexOf ("monotempsource") != -1, "#D4");
1070 Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#D5");
1071 Assert.IsNull (ex.InnerException, "#D6");
1075 EventLog.CreateEventSource ("MonoTempSource", "monologother");
1076 Assert.Fail ("#E1");
1077 } catch (ArgumentException ex) {
1078 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
1079 Assert.IsNotNull (ex.Message, "#E3");
1080 Assert.IsTrue (ex.Message.IndexOf ("MonoTempSource") != -1, "#E4");
1081 Assert.IsTrue (ex.Message.IndexOf ("monologother") == -1, "#E5");
1082 Assert.IsNull (ex.InnerException, "#E6");
1085 if (EventLog.Exists ("monologtemp", "."))
1086 EventLog.Delete ("monologtemp", ".");
1088 if (EventLog.Exists ("monologother", "."))
1089 EventLog.Delete ("monologother", ".");
1094 [ExpectedException (typeof (ArgumentException))] // Must specify value for source
1095 public void CreateEventSource1_Source_Empty ()
1097 EventLog.CreateEventSource (string.Empty, "monologtemp");
1101 [ExpectedException (typeof (ArgumentException))] // Must specify value for source
1102 public void CreateEventSource1_Source_Null ()
1104 EventLog.CreateEventSource (null, "monologtemp");
1108 public void CreateEventSource1_Log_Empty ()
1110 if (EventLogImplType == NULL_IMPL)
1111 // test cannot pass with NULL implementation
1114 if (EventLog.SourceExists ("monotempsource", "."))
1115 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1117 bool logExists = EventLog.Exists ("Application", ".");
1119 EventLog.CreateEventSource ("monotempsource", string.Empty);
1120 string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
1121 Assert.IsNotNull (logName, "#1");
1122 Assert.AreEqual ("Application", logName, "#2");
1125 if (EventLog.Exists ("Application", ".")) {
1126 EventLog.Delete ("Application", ".");
1129 if (EventLog.SourceExists ("monotempsource", "."))
1130 EventLog.DeleteEventSource ("monotempsource", ".");
1136 public void CreateEventSource1_Log_Null ()
1138 if (EventLogImplType == NULL_IMPL)
1139 // test cannot pass with NULL implementation
1142 if (EventLog.SourceExists ("monotempsource", "."))
1143 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1145 bool logExists = EventLog.Exists ("Application", ".");
1147 EventLog.CreateEventSource ("monotempsource", null);
1148 string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
1149 Assert.IsNotNull (logName, "#1");
1150 Assert.AreEqual ("Application", logName, "#2");
1153 if (EventLog.Exists ("Application"))
1154 EventLog.Delete ("Application");
1156 if (EventLog.SourceExists ("monotempsource", "."))
1157 EventLog.DeleteEventSource ("monotempsource", ".");
1163 public void Delete1 ()
1165 if (EventLogImplType == NULL_IMPL)
1166 // test cannot pass with NULL implementation
1169 if (EventLog.SourceExists ("monotempsource", "."))
1170 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1172 if (EventLog.SourceExists ("monoothersource", "."))
1173 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
1175 if (EventLog.Exists ("monologtemp", "."))
1176 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1178 if (EventLog.Exists ("monologother", "."))
1179 Assert.Ignore ("Event log 'monologother' should not exist.");
1182 EventLog.CreateEventSource ("monoothersource", "monologother", ".");
1183 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1185 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
1186 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A2");
1187 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
1188 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
1189 EventLog.Delete ("monologtemp");
1190 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A5");
1191 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A6");
1192 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A7");
1193 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A8");
1195 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1197 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
1198 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B2");
1199 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
1200 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
1201 EventLog.Delete ("MonoLogTemp");
1202 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B5");
1203 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B6");
1204 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B7");
1205 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B8");
1207 if (EventLog.Exists ("monologother"))
1208 EventLog.Delete ("monologother");
1213 public void Delete1_Log_DoesNotExist ()
1215 if (EventLogImplType == NULL_IMPL)
1216 // test cannot pass with NULL implementation
1219 if (EventLog.SourceExists ("monotempsource", "."))
1220 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1222 if (EventLog.Exists ("monologtemp", "."))
1223 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1226 EventLog.Delete ("monologtemp");
1228 } catch (InvalidOperationException ex) {
1229 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
1230 Assert.IsNotNull (ex.Message, "#3");
1231 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#4");
1232 Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#5");
1233 Assert.IsNull (ex.InnerException, "#6");
1238 [ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
1239 public void Delete1_Log_Empty ()
1241 EventLog.Delete (string.Empty);
1245 [ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
1246 public void Delete1_Log_Null ()
1248 EventLog.Delete (null);
1252 public void Delete2 ()
1254 if (EventLogImplType == NULL_IMPL)
1255 // test cannot pass with NULL implementation
1258 if (EventLog.SourceExists ("monotempsource", "."))
1259 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1261 if (EventLog.SourceExists ("monoothersource", "."))
1262 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
1264 if (EventLog.Exists ("monologtemp", "."))
1265 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1267 if (EventLog.Exists ("monologother", "."))
1268 Assert.Ignore ("Event log 'monologother' should not exist.");
1271 EventLog.CreateEventSource ("monoothersource", "monologother", ".");
1272 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1274 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A1");
1275 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A2");
1276 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A3");
1277 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
1278 EventLog.Delete ("monologtemp", ".");
1279 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A5");
1280 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#A6");
1281 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A7");
1282 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A8");
1284 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1286 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
1287 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B2");
1288 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B3");
1289 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
1290 EventLog.Delete ("MonoLogTemp", ".");
1291 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B5");
1292 Assert.IsTrue (EventLog.Exists ("monologother", "."), "#B6");
1293 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B7");
1294 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B8");
1296 if (EventLog.Exists ("monologother"))
1297 EventLog.Delete ("monologother");
1302 public void Delete2_Log_DoesNotExist ()
1304 if (EventLogImplType == NULL_IMPL)
1305 // test cannot pass with NULL implementation
1308 if (EventLog.SourceExists ("monotempsource", "."))
1309 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1311 if (EventLog.Exists ("monologtemp", "."))
1312 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1315 EventLog.Delete ("monologtemp", ".");
1317 } catch (InvalidOperationException ex) {
1318 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
1319 Assert.IsNotNull (ex.Message, "#3");
1320 Assert.IsTrue (ex.Message.IndexOf ("monologtemp") != -1, "#4");
1321 Assert.IsTrue (ex.Message.IndexOf (".") != -1, "#5");
1322 Assert.IsNull (ex.InnerException, "#6");
1327 [ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
1328 public void Delete2_Log_Empty ()
1330 EventLog.Delete (string.Empty, ".");
1334 [ExpectedException (typeof (ArgumentException))] // Log to delete was not specified
1335 public void Delete2_Log_Null ()
1337 EventLog.Delete (null, ".");
1341 [ExpectedException (typeof (ArgumentException))] // Invalid format for argument machineName
1342 public void Delete2_MachineName_Empty ()
1344 EventLog.Delete ("monologtemp", string.Empty);
1348 [ExpectedException (typeof (ArgumentException))] // Invalid format for argument machineName
1349 public void Delete2_MachineName_Null ()
1351 EventLog.Delete ("monologtemp", null);
1355 public void DeleteEventSource1 ()
1357 if (EventLogImplType == NULL_IMPL)
1358 // test cannot pass with NULL implementation
1361 if (EventLog.SourceExists ("monotempsource", "."))
1362 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1364 if (EventLog.SourceExists ("monoothersource", "."))
1365 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
1367 bool monologtempExists = EventLog.Exists ("monologtemp", ".");
1369 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1370 EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
1372 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A1");
1373 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
1374 EventLog.DeleteEventSource ("monotempsource");
1375 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A3");
1376 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
1377 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
1379 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1381 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B1");
1382 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
1383 EventLog.DeleteEventSource ("MonoTempSource");
1384 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B3");
1385 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
1386 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
1388 if (!monologtempExists) {
1389 EventLog.Delete ("monologtemp");
1395 public void DeleteEventSource1_Source_DoesNotExist ()
1397 if (EventLogImplType == NULL_IMPL)
1398 // test cannot pass with NULL implementation
1401 if (EventLog.SourceExists ("monotempsource", "."))
1402 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1405 EventLog.DeleteEventSource ("monotempsource");
1407 } catch (ArgumentException ex) {
1408 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
1409 Assert.IsNotNull (ex.Message, "#3");
1410 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#4");
1411 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
1412 Assert.IsNull (ex.InnerException, "#6");
1417 [ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
1418 public void DeleteEventSource1_Source_Empty ()
1420 if (EventLogImplType == NULL_IMPL)
1421 // allow test to pass with NULL implementation
1422 throw new ArgumentException ();
1424 EventLog.DeleteEventSource (string.Empty);
1428 [ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
1429 public void DeleteEventSource1_Source_Null ()
1431 if (EventLogImplType == NULL_IMPL)
1432 // allow test to pass with NULL implementation
1433 throw new ArgumentException ();
1435 EventLog.DeleteEventSource (null);
1439 public void DeleteEventSource2 ()
1441 if (EventLogImplType == NULL_IMPL)
1442 // test cannot pass with NULL implementation
1445 if (EventLog.SourceExists ("monotempsource", "."))
1446 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1448 if (EventLog.SourceExists ("monoothersource", "."))
1449 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
1451 bool monologtempExists = EventLog.Exists ("monologtemp", ".");
1453 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1454 EventLog.CreateEventSource ("monoothersource", "monologtemp", ".");
1456 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#A1");
1457 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
1458 EventLog.DeleteEventSource ("monotempsource");
1459 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#A3");
1460 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A4");
1461 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#A5");
1463 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1465 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#B1");
1466 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#A2");
1467 EventLog.DeleteEventSource ("MonoTempSource");
1468 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#B3");
1469 Assert.IsTrue (EventLog.SourceExists ("monoothersource", "."), "#B4");
1470 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B5");
1472 if (!monologtempExists) {
1473 EventLog.Delete ("monologtemp");
1479 public void DeleteEventSource2_MachineName_Empty ()
1482 EventLog.DeleteEventSource ("monotempsource", string.Empty);
1483 Assert.Fail ("#A1");
1484 } catch (ArgumentException ex) {
1485 // Invalid value '' for parameter 'machineName'
1486 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
1487 Assert.IsNotNull (ex.Message, "#A3");
1489 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
1490 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
1492 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
1493 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A5");
1495 Assert.IsNull (ex.InnerException, "#A6");
1500 public void DeleteEventSource2_MachineName_Null ()
1503 EventLog.DeleteEventSource ("monotempsource", null);
1504 Assert.Fail ("#A1");
1505 } catch (ArgumentException ex) {
1506 // Invalid value '' for parameter 'machineName'
1507 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
1508 Assert.IsNotNull (ex.Message, "#A3");
1510 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
1511 Assert.IsTrue (ex.Message.IndexOf ("'machineName'") != -1, "#A5");
1513 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
1514 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A5");
1516 Assert.IsNull (ex.InnerException, "#A6");
1521 public void DeleteEventSource2_Source_DoesNotExist ()
1523 if (EventLogImplType == NULL_IMPL)
1524 // test cannot pass with NULL implementation
1527 if (EventLog.SourceExists ("monotempsource", "."))
1528 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1531 EventLog.DeleteEventSource ("monotempsource", ".");
1533 } catch (ArgumentException ex) {
1534 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
1535 Assert.IsNotNull (ex.Message, "#3");
1536 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#4");
1537 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#5");
1538 Assert.IsNull (ex.InnerException, "#6");
1543 [ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
1544 public void DeleteEventSource2_Source_Empty ()
1546 if (EventLogImplType == NULL_IMPL)
1547 // allow test to pass with NULL implementation
1548 throw new ArgumentException ();
1550 EventLog.DeleteEventSource (string.Empty, ".");
1554 [ExpectedException (typeof (ArgumentException))] // The source '' is not registered on machine '.', ...
1555 public void DeleteEventSource2_Source_Null ()
1557 if (EventLogImplType == NULL_IMPL)
1558 // allow test to pass with NULL implementation
1559 throw new ArgumentException ();
1561 EventLog.DeleteEventSource (null, ".");
1565 public void Entries ()
1567 EventLogEntry entry = null;
1568 object current = null;
1570 if (EventLogImplType == NULL_IMPL)
1571 // test cannot pass with NULL implementation
1574 if (EventLog.SourceExists ("monotempsource", "."))
1575 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1577 if (EventLog.Exists ("monologtemp", "."))
1578 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1580 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1582 using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
1583 Assert.IsNotNull (eventLog.Entries, "#A1");
1584 Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
1586 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
1587 Assert.IsNotNull (enumerator, "#B");
1590 current = enumerator.Current;
1591 Assert.Fail ("#C1: " + current);
1592 } catch (InvalidOperationException ex) {
1593 // No current EventLog entry available, cursor is located
1594 // before the first or after the last element of the
1596 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
1597 Assert.IsNotNull (ex.Message, "#C3");
1598 Assert.IsNull (ex.InnerException, "#C4");
1601 Assert.IsFalse (enumerator.MoveNext (), "#D");
1604 current = enumerator.Current;
1605 Assert.Fail ("#E1: " + current);
1606 } catch (InvalidOperationException ex) {
1607 // No current EventLog entry available, cursor is located
1608 // before the first or after the last element of the
1610 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
1611 Assert.IsNotNull (ex.Message, "#E3");
1612 Assert.IsNull (ex.InnerException, "#E4");
1615 EventLogEntry [] entries = new EventLogEntry [0];
1616 eventLog.Entries.CopyTo (entries, 0);
1618 EventLog.WriteEntry ("monotempsource", "Entries1");
1622 current = enumerator.Current;
1623 Assert.Fail ("#G1: " + current);
1624 } catch (InvalidOperationException ex) {
1625 // No current EventLog entry available, cursor is located
1626 // before the first or after the last element of the
1628 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
1629 Assert.IsNotNull (ex.Message, "#G3");
1630 Assert.IsNull (ex.InnerException, "#G4");
1633 entry = (EventLogEntry) enumerator.Current;
1634 Assert.IsNotNull (entry, "#G1");
1635 Assert.IsNotNull (entry.Source, "#G2");
1636 Assert.AreEqual ("monotempsource", entry.Source, "#G3");
1637 Assert.IsNotNull (entry.ReplacementStrings, "#G4");
1638 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#G5");
1639 Assert.AreEqual ("Entries1", entry.ReplacementStrings [0], "#G6");
1642 Assert.IsFalse (enumerator.MoveNext (), "#H1");
1643 Assert.AreEqual (1, eventLog.Entries.Count, "#H2");
1644 enumerator.Reset ();
1646 entries = new EventLogEntry [0];
1648 eventLog.Entries.CopyTo (entries, 0);
1649 Assert.Fail ("#I1");
1650 } catch (ArgumentException ex) {
1651 // Destination array was not long enough. Check destIndex
1652 // and length, and the array's lower bounds
1653 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
1654 Assert.IsNotNull (ex.Message, "#I3");
1655 Assert.IsNull (ex.InnerException, "#I4");
1658 entries = new EventLogEntry [1];
1659 eventLog.Entries.CopyTo (entries, 0);
1661 entry = entries [0];
1662 Assert.IsNotNull (entry, "#J1");
1663 Assert.IsNotNull (entry.Source, "#J2");
1664 Assert.AreEqual ("monotempsource", entry.Source, "#J3");
1665 Assert.IsNotNull (entry.ReplacementStrings, "#J4");
1666 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
1667 Assert.AreEqual ("Entries1", entry.ReplacementStrings [0], "#J6");
1669 Assert.IsTrue (enumerator.MoveNext (), "#K1");
1670 Assert.IsNotNull (enumerator.Current, "#K2");
1671 Assert.IsFalse (enumerator.MoveNext (), "#K3");
1672 enumerator.Reset ();
1673 Assert.IsTrue (enumerator.MoveNext (), "#K4");
1674 Assert.IsNotNull (enumerator.Current, "#K5");
1675 Assert.IsFalse (enumerator.MoveNext (), "#K6");
1677 EventLog.WriteEntry ("monotempsource", "Entries2");
1678 EventLog.WriteEntry ("monotempsource", "Entries3");
1680 Assert.IsTrue (enumerator.MoveNext (), "#L");
1682 entry = (EventLogEntry) enumerator.Current;
1683 Assert.IsNotNull (entry, "#M1");
1684 Assert.IsNotNull (entry.Source, "#M2");
1685 Assert.AreEqual ("monotempsource", entry.Source, "#M3");
1686 Assert.IsNotNull (entry.ReplacementStrings, "#M4");
1687 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#M5");
1688 Assert.AreEqual ("Entries3", entry.ReplacementStrings [0], "#M6");
1690 enumerator.Reset ();
1692 Assert.IsNotNull (enumerator.Current, "#N1");
1695 current = enumerator.Current;
1696 Assert.Fail ("#N1a: " + current);
1697 } catch (InvalidOperationException ex) {
1698 // No current EventLog entry available, cursor is located
1699 // before the first or after the last element of the
1701 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N1b");
1702 Assert.IsNotNull (ex.Message, "#N1c");
1703 Assert.IsNull (ex.InnerException, "#N1d");
1706 Assert.IsTrue (enumerator.MoveNext (), "#N2");
1707 Assert.IsNotNull (enumerator.Current, "#N3");
1708 Assert.IsTrue (enumerator.MoveNext (), "#N4");
1709 Assert.IsNotNull (enumerator.Current, "#N5");
1710 Assert.IsTrue (enumerator.MoveNext (), "#N6");
1711 Assert.IsNotNull (enumerator.Current, "#N7");
1712 Assert.IsFalse (enumerator.MoveNext (), "#N8");
1713 enumerator.Reset ();
1716 current = enumerator.Current;
1717 Assert.Fail ("#O1: " + current);
1718 } catch (InvalidOperationException ex) {
1719 // No current EventLog entry available, cursor is located
1720 // before the first or after the last element of the
1722 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#O2");
1723 Assert.IsNotNull (ex.Message, "#O3");
1724 Assert.IsNull (ex.InnerException, "#O4");
1727 Assert.IsTrue (enumerator.MoveNext (), "#P1");
1728 Assert.IsNotNull (enumerator.Current, "#P2");
1731 Assert.IsNotNull (enumerator.Current, "#P3");
1734 current = enumerator.Current;
1735 Assert.Fail ("#P3a: " + current);
1736 } catch (InvalidOperationException ex) {
1737 // No current EventLog entry available, cursor is located
1738 // before the first or after the last element of the
1740 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#P3b");
1741 Assert.IsNotNull (ex.Message, "#P3c");
1742 Assert.IsNull (ex.InnerException, "#P3d");
1745 Assert.IsFalse (enumerator.MoveNext (), "#P4");
1746 Assert.AreEqual (0, eventLog.Entries.Count, "#P5");
1749 current = enumerator.Current;
1750 Assert.Fail ("#Q1: " + current);
1751 } catch (InvalidOperationException ex) {
1752 // No current EventLog entry available, cursor is located
1753 // before the first or after the last element of the
1755 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#Q2");
1756 Assert.IsNotNull (ex.Message, "#Q3");
1757 Assert.IsNull (ex.InnerException, "#Q4");
1760 Assert.IsFalse (enumerator.MoveNext (), "#R1");
1761 enumerator.Reset ();
1762 Assert.IsFalse (enumerator.MoveNext (), "#R2");
1765 if (EventLog.Exists ("monologtemp"))
1766 EventLog.Delete ("monologtemp");
1771 public void Entries_Log_DoesNotExist ()
1773 if (EventLogImplType == NULL_IMPL)
1774 // test cannot pass with NULL implementation
1777 if (EventLog.Exists ("monologtemp", "."))
1778 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1780 using (EventLog eventLog = new EventLog ("monologtemp", ".")) {
1781 Assert.IsNotNull (eventLog.Entries, "#A1");
1784 Assert.Fail ("#B1: " + eventLog.Entries.Count);
1785 } catch (InvalidOperationException ex) {
1786 // The event log 'monologtemp' on computer '.' does not exist
1787 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
1788 Assert.IsNotNull (ex.Message, "#B3");
1789 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#B4");
1790 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#B5");
1791 Assert.IsNull (ex.InnerException, "#B6");
1793 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#B7");
1795 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
1796 Assert.IsNotNull (enumerator, "#C");
1799 object current = enumerator.Current;
1800 Assert.Fail ("#D1: " + current);
1801 } catch (InvalidOperationException ex) {
1802 // No current EventLog entry available, cursor is located
1803 // before the first or after the last element of the
1805 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
1806 Assert.IsNotNull (ex.Message, "#D3");
1807 Assert.IsNull (ex.InnerException, "#D4");
1811 enumerator.MoveNext ();
1812 Assert.Fail ("#E1");
1813 } catch (InvalidOperationException ex) {
1814 // The event log 'monologtemp' on computer '.' does not exist
1815 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
1816 Assert.IsNotNull (ex.Message, "#E3");
1817 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#E4");
1818 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#E5");
1819 Assert.IsNull (ex.InnerException, "#E6");
1823 EventLogEntry [] entries = new EventLogEntry [0];
1824 eventLog.Entries.CopyTo (entries, 0);
1825 Assert.Fail ("#F1");
1826 } catch (InvalidOperationException ex) {
1827 // The event log 'monologtemp' on computer '.' does not exist
1828 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
1829 Assert.IsNotNull (ex.Message, "#F3");
1830 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#F4");
1831 Assert.IsTrue (ex.Message.IndexOf ("'.'") != -1, "#F5");
1832 Assert.IsNull (ex.InnerException, "#F6");
1835 enumerator.Reset ();
1840 public void Entries_Log_Empty ()
1842 if (EventLogImplType == NULL_IMPL)
1843 // test cannot pass with NULL implementation
1846 if (EventLog.SourceExists ("monotempsource", "."))
1847 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
1849 if (EventLog.SourceExists ("monoothersource", "."))
1850 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
1852 if (EventLog.Exists ("monologtemp", "."))
1853 Assert.Ignore ("Event log 'monologtemp' should not exist.");
1855 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
1857 using (EventLog eventLog = new EventLog (string.Empty, ".")) {
1858 Assert.IsNotNull (eventLog.Entries, "#A1");
1861 Assert.Fail ("#B1: " + eventLog.Entries.Count);
1862 } catch (ArgumentException ex) {
1863 // Log property value has not been specified
1864 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
1865 Assert.IsNotNull (ex.Message, "#B3");
1866 Assert.IsNull (ex.InnerException, "#B4");
1869 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
1870 Assert.IsNotNull (enumerator, "#C");
1873 object current = enumerator.Current;
1874 Assert.Fail ("#D1: " + current);
1875 } catch (InvalidOperationException ex) {
1876 // No current EventLog entry available, cursor is located
1877 // before the first or after the last element of the
1879 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
1880 Assert.IsNotNull (ex.Message, "#D3");
1881 Assert.IsNull (ex.InnerException, "#D4");
1885 enumerator.MoveNext ();
1886 Assert.Fail ("#E1");
1887 } catch (ArgumentException ex) {
1888 // Log property value has not been specified
1889 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
1890 Assert.IsNotNull (ex.Message, "#E3");
1891 Assert.IsNull (ex.InnerException, "#E4");
1895 EventLogEntry [] entries = new EventLogEntry [0];
1896 eventLog.Entries.CopyTo (entries, 0);
1897 Assert.Fail ("#F1");
1898 } catch (ArgumentException ex) {
1899 // Log property value has not been specified
1900 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
1901 Assert.IsNotNull (ex.Message, "#F3");
1902 Assert.IsNull (ex.InnerException, "#F4");
1905 enumerator.Reset ();
1907 // set non-existing source
1908 eventLog.Source = "monoothersource";
1911 Assert.Fail ("#G1: " + eventLog.Entries.Count);
1912 } catch (ArgumentException ex) {
1913 // Log property value has not been specified
1914 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
1915 Assert.IsNotNull (ex.Message, "#G3");
1916 Assert.IsNull (ex.InnerException, "#G4");
1919 enumerator = eventLog.Entries.GetEnumerator ();
1920 Assert.IsNotNull (enumerator, "#H");
1923 object current = enumerator.Current;
1924 Assert.Fail ("#I1: " + current);
1925 } catch (InvalidOperationException ex) {
1926 // No current EventLog entry available, cursor is located
1927 // before the first or after the last element of the
1929 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#I2");
1930 Assert.IsNotNull (ex.Message, "#I3");
1931 Assert.IsNull (ex.InnerException, "#I4");
1935 enumerator.MoveNext ();
1936 Assert.Fail ("#J1");
1937 } catch (ArgumentException ex) {
1938 // Log property value has not been specified
1939 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#J2");
1940 Assert.IsNotNull (ex.Message, "#J3");
1941 Assert.IsNull (ex.InnerException, "#J4");
1945 EventLogEntry [] entries = new EventLogEntry [0];
1946 eventLog.Entries.CopyTo (entries, 0);
1947 Assert.Fail ("#K1");
1948 } catch (ArgumentException ex) {
1949 // Log property value has not been specified
1950 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#K2");
1951 Assert.IsNotNull (ex.Message, "#K3");
1952 Assert.IsNull (ex.InnerException, "#K4");
1955 enumerator.Reset ();
1957 // set existing source
1958 eventLog.Source = "monotempsource";
1960 Assert.AreEqual (0, eventLog.Entries.Count, "#L1");
1961 enumerator = eventLog.Entries.GetEnumerator ();
1962 Assert.IsNotNull (enumerator, "#L2");
1965 object current = enumerator.Current;
1966 Assert.Fail ("#M1: " + current);
1967 } catch (InvalidOperationException ex) {
1968 // No current EventLog entry available, cursor is located
1969 // before the first or after the last element of the
1971 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#M2");
1972 Assert.IsNotNull (ex.Message, "#M3");
1973 Assert.IsNull (ex.InnerException, "#M4");
1976 Assert.IsFalse (enumerator.MoveNext ());
1979 object current = enumerator.Current;
1980 Assert.Fail ("#N1: " + current);
1981 } catch (InvalidOperationException ex) {
1982 // No current EventLog entry available, cursor is located
1983 // before the first or after the last element of the
1985 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
1986 Assert.IsNotNull (ex.Message, "#N3");
1987 Assert.IsNull (ex.InnerException, "#N4");
1990 enumerator.Reset ();
1993 if (EventLog.Exists ("monologtemp"))
1994 EventLog.Delete ("monologtemp");
1999 public void Entries_Source_DoesNotExist ()
2001 if (EventLogImplType == NULL_IMPL)
2002 // test cannot pass with NULL implementation
2005 if (EventLog.SourceExists ("monotempsource", "."))
2006 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2008 if (EventLog.SourceExists ("monoothersource", "."))
2009 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
2011 if (EventLog.Exists ("monologtemp", "."))
2012 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2014 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
2016 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monoothersource")) {
2017 Assert.IsNotNull (eventLog.Entries, "#A1");
2018 Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
2019 EventLog.WriteEntry ("monotempsource", "Entries_Source_DoesNotExist1");
2020 Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
2022 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
2023 Assert.IsNotNull (enumerator, "#B");
2026 object current = enumerator.Current;
2027 Assert.Fail ("#C1: " + current);
2028 } catch (InvalidOperationException ex) {
2029 // No current EventLog entry available, cursor is located
2030 // before the first or after the last element of the
2032 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
2033 Assert.IsNotNull (ex.Message, "#C3");
2034 Assert.IsNull (ex.InnerException, "#C4");
2037 Assert.IsTrue (enumerator.MoveNext (), "#D1");
2038 Assert.IsNotNull (enumerator.Current, "#D2");
2039 Assert.IsFalse (enumerator.MoveNext (), "#D3");
2041 EventLogEntry [] entries = new EventLogEntry [1];
2042 eventLog.Entries.CopyTo (entries, 0);
2044 EventLogEntry entry = entries [0];
2045 Assert.IsNotNull (entry, "#E1");
2046 Assert.IsNotNull (entry.Source, "#E2");
2047 Assert.AreEqual ("monotempsource", entry.Source, "#E3");
2048 Assert.IsNotNull (entry.ReplacementStrings, "#E4");
2049 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
2050 Assert.AreEqual ("Entries_Source_DoesNotExist1", entry.ReplacementStrings [0], "#E6");
2053 object current = enumerator.Current;
2054 Assert.Fail ("#E1: " + current);
2055 } catch (InvalidOperationException ex) {
2056 // No current EventLog entry available, cursor is located
2057 // before the first or after the last element of the
2059 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
2060 Assert.IsNotNull (ex.Message, "#E3");
2061 Assert.IsNull (ex.InnerException, "#E4");
2065 object current = enumerator.Current;
2066 Assert.Fail ("#F1: " + current);
2067 } catch (InvalidOperationException ex) {
2068 // No current EventLog entry available, cursor is located
2069 // before the first or after the last element of the
2071 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
2072 Assert.IsNotNull (ex.Message, "#F3");
2073 Assert.IsNull (ex.InnerException, "#F4");
2076 EventLog.WriteEntry ("monotempsource", "Entries_Source_DoesNotExist2");
2080 object current = enumerator.Current;
2081 Assert.Fail ("#G1: " + current);
2082 } catch (InvalidOperationException ex) {
2083 // No current EventLog entry available, cursor is located
2084 // before the first or after the last element of the
2086 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
2087 Assert.IsNotNull (ex.Message, "#G3");
2088 Assert.IsNull (ex.InnerException, "#G4");
2091 entry = (EventLogEntry) enumerator.Current;
2092 Assert.IsNotNull (entry, "#G1");
2093 Assert.IsNotNull (entry.Source, "#G2");
2094 Assert.AreEqual ("monotempsource", entry.Source, "#G3");
2095 Assert.IsNotNull (entry.ReplacementStrings, "#G4");
2096 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#G5");
2097 Assert.AreEqual ("Entries_Source_DoesNotExist2", entry.ReplacementStrings [0], "#G6");
2100 Assert.IsFalse (enumerator.MoveNext (), "#H1");
2101 Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
2103 entries = new EventLogEntry [1];
2105 eventLog.Entries.CopyTo (entries, 0);
2106 Assert.Fail ("#I1");
2107 } catch (ArgumentException ex) {
2108 // Destination array was not long enough. Check destIndex
2109 // and length, and the array's lower bounds
2110 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
2111 Assert.IsNotNull (ex.Message, "#I3");
2112 Assert.IsNull (ex.InnerException, "#I4");
2115 entries = new EventLogEntry [2];
2116 eventLog.Entries.CopyTo (entries, 0);
2118 entry = entries [0];
2119 Assert.IsNotNull (entry, "#J1");
2120 Assert.IsNotNull (entry.Source, "#J2");
2121 Assert.AreEqual ("monotempsource", entry.Source, "#J3");
2122 Assert.IsNotNull (entry.ReplacementStrings, "#J4");
2123 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
2124 Assert.AreEqual ("Entries_Source_DoesNotExist1", entry.ReplacementStrings [0], "#J6");
2126 entry = entries [1];
2127 Assert.IsNotNull (entry, "#K1");
2128 Assert.IsNotNull (entry.Source, "#K2");
2129 Assert.AreEqual ("monotempsource", entry.Source, "#K3");
2130 Assert.IsNotNull (entry.ReplacementStrings, "#K4");
2131 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
2132 Assert.AreEqual ("Entries_Source_DoesNotExist2", entry.ReplacementStrings [0], "#K6");
2134 Assert.IsFalse (enumerator.MoveNext (), "#L1");
2135 enumerator.Reset ();
2136 Assert.IsTrue (enumerator.MoveNext (), "#L2");
2137 Assert.IsNotNull (enumerator.Current, "#L3");
2138 Assert.IsTrue (enumerator.MoveNext (), "#L4");
2139 Assert.IsNotNull (enumerator.Current, "#L5");
2141 Assert.IsFalse (enumerator.MoveNext (), "#M1");
2142 enumerator.Reset ();
2143 Assert.IsTrue (enumerator.MoveNext (), "#M2");
2146 Assert.IsNotNull (enumerator.Current, "#M3");
2149 object current = enumerator.Current;
2150 Assert.Fail ("#M3a: " + current);
2151 } catch (InvalidOperationException ex) {
2152 // No current EventLog entry available, cursor is located
2153 // before the first or after the last element of the
2155 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#M3b");
2156 Assert.IsNotNull (ex.Message, "#M3c");
2157 Assert.IsNull (ex.InnerException, "#M3d");
2160 Assert.IsFalse (enumerator.MoveNext (), "#M4");
2163 object current = enumerator.Current;
2164 Assert.Fail ("#N1: " + current);
2165 } catch (InvalidOperationException ex) {
2166 // No current EventLog entry available, cursor is located
2167 // before the first or after the last element of the
2169 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
2170 Assert.IsNotNull (ex.Message, "#N3");
2171 Assert.IsNull (ex.InnerException, "#N4");
2174 Assert.IsFalse (enumerator.MoveNext (), "#O1");
2175 enumerator.Reset ();
2176 Assert.IsFalse (enumerator.MoveNext (), "#O2");
2179 if (EventLog.Exists ("monologtemp"))
2180 EventLog.Delete ("monologtemp");
2185 public void Entries_Source_Empty ()
2187 if (EventLogImplType == NULL_IMPL)
2188 // test cannot pass with NULL implementation
2191 if (EventLog.SourceExists ("monotempsource", "."))
2192 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2194 if (EventLog.Exists ("monologtemp", "."))
2195 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2197 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
2199 using (EventLog eventLog = new EventLog ("monologtemp", ".", string.Empty)) {
2200 Assert.IsNotNull (eventLog.Entries, "#A1");
2201 Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
2202 EventLog.WriteEntry ("monotempsource", "Entries_Source_Empty1");
2203 Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
2205 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
2206 Assert.IsNotNull (enumerator, "#B");
2209 object current = enumerator.Current;
2210 Assert.Fail ("#C1: " + current);
2211 } catch (InvalidOperationException ex) {
2212 // No current EventLog entry available, cursor is located
2213 // before the first or after the last element of the
2215 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
2216 Assert.IsNotNull (ex.Message, "#C3");
2217 Assert.IsNull (ex.InnerException, "#C4");
2220 Assert.IsTrue (enumerator.MoveNext (), "#D1");
2221 Assert.IsNotNull (enumerator.Current, "#D2");
2222 Assert.IsFalse (enumerator.MoveNext (), "#D3");
2224 EventLogEntry [] entries = new EventLogEntry [1];
2225 eventLog.Entries.CopyTo (entries, 0);
2227 EventLogEntry entry = entries [0];
2228 Assert.IsNotNull (entry, "#E1");
2229 Assert.IsNotNull (entry.Source, "#E2");
2230 Assert.AreEqual ("monotempsource", entry.Source, "#E3");
2231 Assert.IsNotNull (entry.ReplacementStrings, "#E4");
2232 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
2233 Assert.AreEqual ("Entries_Source_Empty1", entry.ReplacementStrings [0], "#E6");
2236 object current = enumerator.Current;
2237 Assert.Fail ("#E1: " + current);
2238 } catch (InvalidOperationException ex) {
2239 // No current EventLog entry available, cursor is located
2240 // before the first or after the last element of the
2242 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
2243 Assert.IsNotNull (ex.Message, "#E3");
2244 Assert.IsNull (ex.InnerException, "#E4");
2247 EventLog.WriteEntry ("monotempsource", "Entries_Source_Empty2");
2251 object current = enumerator.Current;
2252 Assert.Fail ("#G1: " + current);
2253 } catch (InvalidOperationException ex) {
2254 // No current EventLog entry available, cursor is located
2255 // before the first or after the last element of the
2257 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
2258 Assert.IsNotNull (ex.Message, "#G3");
2259 Assert.IsNull (ex.InnerException, "#G4");
2262 entry = (EventLogEntry) enumerator.Current;
2263 Assert.IsNotNull (entry, "#G1");
2264 Assert.IsNotNull (entry.Source, "#G2");
2265 Assert.AreEqual ("monotempsource", entry.Source, "#G3");
2266 Assert.IsNotNull (entry.ReplacementStrings, "#G4");
2267 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#G5");
2268 Assert.AreEqual ("Entries_Source_Empty2", entry.ReplacementStrings [0], "#G6");
2271 Assert.IsFalse (enumerator.MoveNext (), "#H1");
2272 Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
2274 entries = new EventLogEntry [1];
2276 eventLog.Entries.CopyTo (entries, 0);
2277 Assert.Fail ("#I1");
2278 } catch (ArgumentException ex) {
2279 // Destination array was not long enough. Check destIndex
2280 // and length, and the array's lower bounds
2281 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
2282 Assert.IsNotNull (ex.Message, "#I3");
2283 Assert.IsNull (ex.InnerException, "#I4");
2286 entries = new EventLogEntry [2];
2287 eventLog.Entries.CopyTo (entries, 0);
2289 entry = entries [0];
2290 Assert.IsNotNull (entry, "#J1");
2291 Assert.IsNotNull (entry.Source, "#J2");
2292 Assert.AreEqual ("monotempsource", entry.Source, "#J3");
2293 Assert.IsNotNull (entry.ReplacementStrings, "#J4");
2294 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
2295 Assert.AreEqual ("Entries_Source_Empty1", entry.ReplacementStrings [0], "#J6");
2297 entry = entries [1];
2298 Assert.IsNotNull (entry, "#K1");
2299 Assert.IsNotNull (entry.Source, "#K2");
2300 Assert.AreEqual ("monotempsource", entry.Source, "#K3");
2301 Assert.IsNotNull (entry.ReplacementStrings, "#K4");
2302 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
2303 Assert.AreEqual ("Entries_Source_Empty2", entry.ReplacementStrings [0], "#K6");
2305 Assert.IsFalse (enumerator.MoveNext (), "#L1");
2306 enumerator.Reset ();
2307 Assert.IsTrue (enumerator.MoveNext (), "#L2");
2308 Assert.IsNotNull (enumerator.Current, "#L3");
2309 Assert.IsTrue (enumerator.MoveNext (), "#L4");
2310 Assert.IsNotNull (enumerator.Current, "#L5");
2312 Assert.IsFalse (enumerator.MoveNext (), "#M1");
2313 enumerator.Reset ();
2314 Assert.IsTrue (enumerator.MoveNext (), "#M2");
2317 Assert.IsNotNull (enumerator.Current, "#M3");
2320 object current = enumerator.Current;
2321 Assert.Fail ("#M3a: " + current);
2322 } catch (InvalidOperationException ex) {
2323 // No current EventLog entry available, cursor is located
2324 // before the first or after the last element of the
2326 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#M3b");
2327 Assert.IsNotNull (ex.Message, "#M3c");
2328 Assert.IsNull (ex.InnerException, "#M3d");
2331 Assert.IsFalse (enumerator.MoveNext (), "#M4");
2334 object current = enumerator.Current;
2335 Assert.Fail ("#N1: " + current);
2336 } catch (InvalidOperationException ex) {
2337 // No current EventLog entry available, cursor is located
2338 // before the first or after the last element of the
2340 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
2341 Assert.IsNotNull (ex.Message, "#N3");
2342 Assert.IsNull (ex.InnerException, "#N4");
2345 Assert.IsFalse (enumerator.MoveNext (), "#O1");
2346 enumerator.Reset ();
2347 Assert.IsFalse (enumerator.MoveNext (), "#O2");
2350 if (EventLog.Exists ("monologtemp"))
2351 EventLog.Delete ("monologtemp");
2356 public void Entries_Source_Null ()
2358 if (EventLogImplType == NULL_IMPL)
2359 // test cannot pass with NULL implementation
2362 if (EventLog.SourceExists ("monotempsource", "."))
2363 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2365 if (EventLog.Exists ("monologtemp", "."))
2366 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2368 EventLog.CreateEventSource ("monotempsource", "monologtemp", ".");
2370 using (EventLog eventLog = new EventLog ("monologtemp", ".", null)) {
2371 Assert.IsNotNull (eventLog.Entries, "#A1");
2372 Assert.AreEqual (0, eventLog.Entries.Count, "#A2");
2373 EventLog.WriteEntry ("monotempsource", "Entries_Source_Null1");
2374 Assert.AreEqual (1, eventLog.Entries.Count, "#A3");
2376 IEnumerator enumerator = eventLog.Entries.GetEnumerator ();
2377 Assert.IsNotNull (enumerator, "#B");
2380 object current = enumerator.Current;
2381 Assert.Fail ("#C1: " + current);
2382 } catch (InvalidOperationException ex) {
2383 // No current EventLog entry available, cursor is located
2384 // before the first or after the last element of the
2386 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
2387 Assert.IsNotNull (ex.Message, "#C3");
2388 Assert.IsNull (ex.InnerException, "#C4");
2391 Assert.IsTrue (enumerator.MoveNext (), "#D1");
2392 Assert.IsNotNull (enumerator.Current, "#D2");
2393 Assert.IsFalse (enumerator.MoveNext (), "#D3");
2395 EventLogEntry [] entries = new EventLogEntry [1];
2396 eventLog.Entries.CopyTo (entries, 0);
2398 EventLogEntry entry = entries [0];
2399 Assert.IsNotNull (entry, "#E1");
2400 Assert.IsNotNull (entry.Source, "#E2");
2401 Assert.AreEqual ("monotempsource", entry.Source, "#E3");
2402 Assert.IsNotNull (entry.ReplacementStrings, "#E4");
2403 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#E5");
2404 Assert.AreEqual ("Entries_Source_Null1", entry.ReplacementStrings [0], "#E6");
2407 object current = enumerator.Current;
2408 Assert.Fail ("#E1: " + current);
2409 } catch (InvalidOperationException ex) {
2410 // No current EventLog entry available, cursor is located
2411 // before the first or after the last element of the
2413 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
2414 Assert.IsNotNull (ex.Message, "#E3");
2415 Assert.IsNull (ex.InnerException, "#E4");
2419 object current = enumerator.Current;
2420 Assert.Fail ("#F1: " + current);
2421 } catch (InvalidOperationException ex) {
2422 // No current EventLog entry available, cursor is located
2423 // before the first or after the last element of the
2425 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
2426 Assert.IsNotNull (ex.Message, "#F3");
2427 Assert.IsNull (ex.InnerException, "#F4");
2430 EventLog.WriteEntry ("monotempsource", "Entries_Source_Null2");
2434 object current = enumerator.Current;
2435 Assert.Fail ("#G1: " + current);
2436 } catch (InvalidOperationException ex) {
2437 // No current EventLog entry available, cursor is located
2438 // before the first or after the last element of the
2440 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
2441 Assert.IsNotNull (ex.Message, "#G3");
2442 Assert.IsNull (ex.InnerException, "#G4");
2445 entry = (EventLogEntry) enumerator.Current;
2446 Assert.IsNotNull (entry, "#G1");
2447 Assert.IsNotNull (entry.Source, "#G2");
2448 Assert.AreEqual ("monotempsource", entry.Source, "#G3");
2449 Assert.IsNotNull (entry.ReplacementStrings, "#G4");
2450 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#G5");
2451 Assert.AreEqual ("Entries_Source_Null2", entry.ReplacementStrings [0], "#G6");
2454 Assert.IsFalse (enumerator.MoveNext (), "#H1");
2455 Assert.AreEqual (2, eventLog.Entries.Count, "#H2");
2457 entries = new EventLogEntry [1];
2459 eventLog.Entries.CopyTo (entries, 0);
2460 Assert.Fail ("#I1");
2461 } catch (ArgumentException ex) {
2462 // Destination array was not long enough. Check destIndex
2463 // and length, and the array's lower bounds
2464 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#I2");
2465 Assert.IsNotNull (ex.Message, "#I3");
2466 Assert.IsNull (ex.InnerException, "#I4");
2469 entries = new EventLogEntry [2];
2470 eventLog.Entries.CopyTo (entries, 0);
2472 entry = entries [0];
2473 Assert.IsNotNull (entry, "#J1");
2474 Assert.IsNotNull (entry.Source, "#J2");
2475 Assert.AreEqual ("monotempsource", entry.Source, "#J3");
2476 Assert.IsNotNull (entry.ReplacementStrings, "#J4");
2477 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#J5");
2478 Assert.AreEqual ("Entries_Source_Null1", entry.ReplacementStrings [0], "#J6");
2480 entry = entries [1];
2481 Assert.IsNotNull (entry, "#K1");
2482 Assert.IsNotNull (entry.Source, "#K2");
2483 Assert.AreEqual ("monotempsource", entry.Source, "#K3");
2484 Assert.IsNotNull (entry.ReplacementStrings, "#K4");
2485 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#K5");
2486 Assert.AreEqual ("Entries_Source_Null2", entry.ReplacementStrings [0], "#K6");
2488 Assert.IsFalse (enumerator.MoveNext (), "#L1");
2489 enumerator.Reset ();
2490 Assert.IsTrue (enumerator.MoveNext (), "#L2");
2491 Assert.IsNotNull (enumerator.Current, "#L3");
2492 Assert.IsTrue (enumerator.MoveNext (), "#L4");
2493 Assert.IsNotNull (enumerator.Current, "#L5");
2495 Assert.IsFalse (enumerator.MoveNext (), "#M1");
2496 enumerator.Reset ();
2497 Assert.IsTrue (enumerator.MoveNext (), "#M2");
2500 Assert.IsNotNull (enumerator.Current, "#M3");
2503 object current = enumerator.Current;
2504 Assert.Fail ("#M3a: " + current);
2505 } catch (InvalidOperationException ex) {
2506 // No current EventLog entry available, cursor is located
2507 // before the first or after the last element of the
2509 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#M3b");
2510 Assert.IsNotNull (ex.Message, "#M3c");
2511 Assert.IsNull (ex.InnerException, "#M3d");
2514 Assert.IsFalse (enumerator.MoveNext (), "#M4");
2517 object current = enumerator.Current;
2518 Assert.Fail ("#N1: " + current);
2519 } catch (InvalidOperationException ex) {
2520 // No current EventLog entry available, cursor is located
2521 // before the first or after the last element of the
2523 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#N2");
2524 Assert.IsNotNull (ex.Message, "#N3");
2525 Assert.IsNull (ex.InnerException, "#N4");
2528 Assert.IsFalse (enumerator.MoveNext (), "#O1");
2529 enumerator.Reset ();
2530 Assert.IsFalse (enumerator.MoveNext (), "#O2");
2533 if (EventLog.Exists ("monologtemp"))
2534 EventLog.Delete ("monologtemp");
2539 public void Exists1_Win32 ()
2541 if (EventLogImplType != WIN32_IMPL)
2542 // test can only pass with win32 implementation
2545 using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
2547 Assert.Ignore ("Event log 'monotempsource' should not exist.");
2550 using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
2552 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2555 using (RegistryKey logKey = FindLogKeyByName ("monologother")) {
2557 Assert.Ignore ("Event log 'monologother' should not exist.");
2560 using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
2561 if (sourceKey != null)
2562 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2565 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A1");
2566 Assert.IsFalse (EventLog.Exists ("MonoLogTemp"), "#A2");
2567 Assert.IsFalse (EventLog.Exists ("monologother"), "#A3");
2568 Assert.IsFalse (EventLog.Exists ("MonoLogOther"), "#A4");
2570 using (RegistryKey eventLogKey = EventLogKey) {
2571 RegistryKey logKey = eventLogKey.CreateSubKey ("monologtemp");
2573 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#B1");
2574 Assert.IsTrue (EventLog.Exists ("MonoLogTemp"), "#B2");
2575 Assert.IsFalse (EventLog.Exists ("monologother"), "#B3");
2576 Assert.IsFalse (EventLog.Exists ("MonoLogOther"), "#B3");
2578 Assert.IsFalse (EventLog.Exists ("monotempsource"), "#BXXX");
2580 using (RegistryKey sourceKey = logKey.CreateSubKey ("monotempsource")) {
2583 Assert.IsFalse (EventLog.Exists ("monotempsource"), "#C1");
2584 Assert.IsFalse (EventLog.Exists ("MonoTempSource"), "#C2");
2586 if (logKey != null) {
2588 eventLogKey.DeleteSubKeyTree ("monologtemp");
2595 public void Exists1_Log_Empty ()
2597 Assert.IsFalse (EventLog.Exists (string.Empty));
2601 public void Exists1_Log_Null ()
2603 Assert.IsFalse (EventLog.Exists (null));
2607 public void Exists2_Win32 ()
2609 if (EventLogImplType != WIN32_IMPL)
2610 // test can only pass with win32 implementation
2613 using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
2615 Assert.Ignore ("Event log 'monotempsource' should not exist.");
2618 using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
2620 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2623 using (RegistryKey logKey = FindLogKeyByName ("monologother")) {
2625 Assert.Ignore ("Event log 'monologother' should not exist.");
2628 using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
2629 if (sourceKey != null)
2630 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2633 Assert.IsFalse (EventLog.Exists ("monologtemp", "."), "#A1");
2634 Assert.IsFalse (EventLog.Exists ("MonoLogTemp", "."), "#A2");
2635 Assert.IsFalse (EventLog.Exists ("monologother", "."), "#A3");
2636 Assert.IsFalse (EventLog.Exists ("MonoLogOther", "."), "#A4");
2638 using (RegistryKey eventLogKey = EventLogKey) {
2639 RegistryKey logKey = eventLogKey.CreateSubKey ("monologtemp");
2641 Assert.IsTrue (EventLog.Exists ("monologtemp", "."), "#B1");
2642 Assert.IsTrue (EventLog.Exists ("MonoLogTemp", "."), "#B2");
2643 Assert.IsFalse (EventLog.Exists ("monologother", "."), "#B3");
2644 Assert.IsFalse (EventLog.Exists ("MonoLogOther", "."), "#B3");
2646 using (RegistryKey sourceKey = logKey.CreateSubKey ("monotempsource")) {
2649 Assert.IsFalse (EventLog.Exists ("monotempsource", "."), "#C1");
2650 Assert.IsFalse (EventLog.Exists ("MonoTempSource", "."), "#C2");
2652 if (logKey != null) {
2654 eventLogKey.DeleteSubKeyTree ("monologtemp");
2661 public void Exists2_Log_Empty ()
2663 Assert.IsFalse (EventLog.Exists (string.Empty, "."));
2667 public void Exists2_Log_Null ()
2669 Assert.IsFalse (EventLog.Exists (null, "."));
2673 public void Exists2_MachineName_Empty ()
2676 EventLog.Exists ("monologtemp", string.Empty);
2677 Assert.Fail ("#A1");
2678 } catch (ArgumentException ex) {
2679 // Invalid format for argument machineName
2680 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
2681 Assert.IsNotNull (ex.Message, "#A3");
2682 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A4");
2683 Assert.IsNull (ex.InnerException, "#A5");
2687 EventLog.Exists (string.Empty, string.Empty);
2688 Assert.Fail ("#B1");
2689 } catch (ArgumentException ex) {
2690 // Invalid format for argument machineName
2691 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
2692 Assert.IsNotNull (ex.Message, "#B3");
2693 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#B4");
2694 Assert.IsNull (ex.InnerException, "#B5");
2698 EventLog.Exists (null, string.Empty);
2699 Assert.Fail ("#C1");
2700 } catch (ArgumentException ex) {
2701 // Invalid format for argument machineName
2702 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
2703 Assert.IsNotNull (ex.Message, "#C3");
2704 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#C4");
2705 Assert.IsNull (ex.InnerException, "#C5");
2710 public void Exists2_MachineName_Null ()
2713 EventLog.Exists ("monologtemp", null);
2714 Assert.Fail ("#A1");
2715 } catch (ArgumentException ex) {
2716 // Invalid format for argument machineName
2717 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
2718 Assert.IsNotNull (ex.Message, "#A3");
2719 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#A4");
2720 Assert.IsNull (ex.InnerException, "#A5");
2724 EventLog.Exists (string.Empty, null);
2725 Assert.Fail ("#B1");
2726 } catch (ArgumentException ex) {
2727 // Invalid format for argument machineName
2728 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
2729 Assert.IsNotNull (ex.Message, "#B3");
2730 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#B4");
2731 Assert.IsNull (ex.InnerException, "#B5");
2735 EventLog.Exists (null, null);
2736 Assert.Fail ("#C1");
2737 } catch (ArgumentException ex) {
2738 // Invalid format for argument machineName
2739 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
2740 Assert.IsNotNull (ex.Message, "#C3");
2741 Assert.IsTrue (ex.Message.IndexOf ("machineName") != -1, "#C4");
2742 Assert.IsNull (ex.InnerException, "#C5");
2749 EventLog eventLog = new EventLog ();
2750 eventLog.Log = string.Empty;
2751 Assert.AreEqual (string.Empty, eventLog.Log, "#1");
2752 Assert.AreEqual (string.Empty, eventLog.Source, "#2");
2753 eventLog.Log = "monologtemp";
2754 Assert.AreEqual ("monologtemp", eventLog.Log, "#3");
2755 Assert.AreEqual (string.Empty, eventLog.Source, "#4");
2756 eventLog.Log = string.Empty;
2757 Assert.AreEqual (string.Empty, eventLog.Log, "#5");
2758 Assert.AreEqual (string.Empty, eventLog.Source, "#6");
2763 [ExpectedException (typeof (ArgumentNullException))]
2764 public void Log_Null ()
2766 EventLog eventLog = new EventLog ();
2767 eventLog.Log = null;
2771 public void LogNameFromSourceName ()
2773 if (EventLogImplType == NULL_IMPL)
2774 // test cannot pass with NULL implementation
2777 if (EventLog.SourceExists ("monotempsource", "."))
2778 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2780 if (EventLog.Exists ("monologtemp", "."))
2781 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2784 EventLog.CreateEventSource ("monotempsource", "monologtemp");
2786 Assert.IsNotNull (EventLog.LogNameFromSourceName ("monotempsource", "."), "#1");
2787 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#2");
2788 Assert.IsNotNull (EventLog.LogNameFromSourceName ("monologtemp", "."), "#3");
2789 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monologtemp", "."), "#4");
2791 if (EventLog.Exists ("monologtemp"))
2792 EventLog.Delete ("monologtemp");
2797 public void LogNameFromSourceName_MachineName_Empty ()
2800 EventLog.LogNameFromSourceName ("monotempsource", string.Empty);
2801 Assert.Fail ("#A1");
2802 } catch (ArgumentException ex) {
2803 // Invalid value '' for parameter 'MachineName'
2804 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
2805 Assert.IsNotNull (ex.Message, "#A3");
2807 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
2808 Assert.IsTrue (ex.Message.IndexOf ("'MachineName'") != -1, "#A5");
2810 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
2811 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
2813 Assert.IsNull (ex.InnerException, "#A6");
2818 public void LogNameFromSourceName_MachineName_Null ()
2821 EventLog.LogNameFromSourceName ("monotempsource", null);
2822 Assert.Fail ("#A1");
2823 } catch (ArgumentException ex) {
2824 // Invalid value '' for parameter 'MachineName'
2825 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
2826 Assert.IsNotNull (ex.Message, "#A3");
2828 Assert.IsTrue (ex.Message.IndexOf ("''") != -1, "#A4");
2829 Assert.IsTrue (ex.Message.IndexOf ("'MachineName'") != -1, "#A5");
2831 Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#A4");
2832 Assert.IsTrue (ex.Message.IndexOf ("MachineName") != -1, "#A5");
2834 Assert.IsNull (ex.InnerException, "#A6");
2839 public void LogNameFromSourceName_Source_DoesNotExist ()
2841 if (EventLogImplType == NULL_IMPL)
2842 // test cannot pass with NULL implementation
2845 if (EventLog.SourceExists ("monotempsource", "."))
2846 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2848 string logName = EventLog.LogNameFromSourceName ("monotempsource", ".");
2849 Assert.IsNotNull (logName, "#1");
2850 Assert.AreEqual (string.Empty, logName, "#2");
2854 public void LogNameFromSourceName_Source_Empty ()
2856 if (EventLogImplType == NULL_IMPL)
2857 // test cannot pass with NULL implementation
2860 string logName = EventLog.LogNameFromSourceName (string.Empty, ".");
2861 Assert.IsNotNull (logName, "#1");
2862 Assert.AreEqual (string.Empty, logName, "#2");
2866 public void LogNameFromSourceName_Source_Null ()
2868 if (EventLogImplType == NULL_IMPL)
2869 // test cannot pass with NULL implementation
2872 string logName = EventLog.LogNameFromSourceName (null, ".");
2873 Assert.IsNotNull (logName, "#1");
2874 Assert.AreEqual (string.Empty, logName, "#2");
2878 public void Source ()
2880 if (EventLogImplType == NULL_IMPL)
2881 // test cannot pass with NULL implementation
2884 if (EventLog.SourceExists ("monotempsource", "."))
2885 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2887 if (EventLog.Exists ("monologtemp", "."))
2888 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2890 using (EventLog eventLog = new EventLog ()) {
2891 eventLog.Source = null;
2892 Assert.AreEqual (string.Empty, eventLog.Source, "#A1");
2893 Assert.AreEqual (string.Empty, eventLog.Log, "#A2");
2894 eventLog.Source = "monotempsource";
2895 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
2896 Assert.AreEqual (string.Empty, eventLog.Log, "#A4");
2897 eventLog.Source = null;
2898 Assert.AreEqual (string.Empty, eventLog.Source, "#A5");
2899 Assert.AreEqual (string.Empty, eventLog.Log, "#A6");
2901 EventLog.CreateEventSource ("monotempsource", "monologtemp");
2903 Assert.AreEqual (string.Empty, eventLog.Source, "#B1");
2904 Assert.AreEqual (string.Empty, eventLog.Log, "#B2");
2905 eventLog.Source = "monotempsource";
2906 Assert.AreEqual ("monotempsource", eventLog.Source, "#B3");
2907 Assert.AreEqual ("monologtemp", eventLog.Log, "#B4");
2908 eventLog.Log = string.Empty;
2909 Assert.AreEqual ("monotempsource", eventLog.Source, "#B5");
2910 Assert.AreEqual ("monologtemp", eventLog.Log, "#B6");
2911 eventLog.Source = null;
2912 Assert.AreEqual (string.Empty, eventLog.Source, "#B7");
2913 Assert.AreEqual ("monologtemp", eventLog.Log, "#B8");
2914 eventLog.Log = string.Empty;
2915 Assert.AreEqual (string.Empty, eventLog.Source, "#B9");
2916 Assert.AreEqual (string.Empty, eventLog.Log, "#B10");
2918 EventLog.Delete ("monologtemp");
2924 public void SourceExists1_Win32 ()
2926 if (EventLogImplType != WIN32_IMPL)
2927 // test can only pass with win32 implementation
2930 using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
2932 Assert.Ignore ("Event log 'monotempsource' should not exist.");
2935 using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
2937 Assert.Ignore ("Event log 'monologtemp' should not exist.");
2940 using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
2941 if (sourceKey != null)
2942 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
2945 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A1");
2946 Assert.IsFalse (EventLog.SourceExists ("MonoTempSource"), "#A2");
2948 using (RegistryKey eventLogKey = EventLogKey) {
2949 RegistryKey logKey = eventLogKey.CreateSubKey ("monotempsource");
2951 // make sure we do not mistake a log for a source
2952 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B1");
2953 Assert.IsFalse (EventLog.SourceExists ("MonoTempSource"), "#B2");
2955 if (logKey != null) {
2957 eventLogKey.DeleteSubKeyTree ("monotempsource");
2961 logKey = eventLogKey.CreateSubKey ("monologtemp");
2963 RegistryKey sourceKey = null;
2965 // create temporary source key
2966 sourceKey = logKey.CreateSubKey ("monotempsource");
2967 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#C1");
2968 Assert.IsTrue (EventLog.SourceExists ("MonoTempSource"), "#C2");
2970 if (sourceKey != null) {
2972 logKey.DeleteSubKeyTree ("monotempsource");
2976 if (logKey != null) {
2978 eventLogKey.DeleteSubKeyTree ("monologtemp");
2985 public void SourceExists1_Source_Empty ()
2987 Assert.IsFalse (EventLog.SourceExists (string.Empty));
2991 public void SourceExists1_Source_Null ()
2993 Assert.IsFalse (EventLog.SourceExists (null));
2997 public void SourceExists2_Win32 ()
2999 if (EventLogImplType != WIN32_IMPL)
3000 // test can only pass with win32 implementation
3003 using (RegistryKey logKey = FindLogKeyByName ("monotempsource")) {
3005 Assert.Ignore ("Event log 'monotempsource' should not exist.");
3008 using (RegistryKey logKey = FindLogKeyByName ("monologtemp")) {
3010 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3013 using (RegistryKey sourceKey = FindSourceKeyByName ("monotempsource")) {
3014 if (sourceKey != null)
3015 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3018 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#1");
3020 using (RegistryKey eventLogKey = EventLogKey) {
3021 RegistryKey logKey = eventLogKey.CreateSubKey ("monotempsource");
3023 // make sure we do not mistake a log for a source
3024 Assert.IsFalse (EventLog.SourceExists ("monotempsource", "."), "#2");
3026 if (logKey != null) {
3028 eventLogKey.DeleteSubKeyTree ("monotempsource");
3032 logKey = eventLogKey.CreateSubKey ("monologtemp");
3034 RegistryKey sourceKey = null;
3036 // create temporary source key
3037 sourceKey = logKey.CreateSubKey ("monotempsource");
3038 Assert.IsTrue (EventLog.SourceExists ("monotempsource", "."), "#3");
3040 if (sourceKey != null) {
3042 logKey.DeleteSubKeyTree ("monotempsource");
3046 if (logKey != null) {
3048 eventLogKey.DeleteSubKeyTree ("monologtemp");
3055 [ExpectedException (typeof (ArgumentException))] // Invalid value for parameter machineName
3056 public void SourceExists2_MachineName_Empty ()
3058 EventLog.SourceExists ("monotempsource", string.Empty);
3062 [ExpectedException (typeof (ArgumentException))] // Invalid value for parameter machineName
3063 public void SourceExists2_MachineName_Null ()
3065 EventLog.SourceExists ("monotempsource", null);
3069 public void SourceExists2_Source_Empty ()
3071 Assert.IsFalse (EventLog.SourceExists (string.Empty, "."));
3075 public void SourceExists2_Source_Null ()
3077 Assert.IsFalse (EventLog.SourceExists (null, "."));
3081 public void WriteEntry1 ()
3083 if (EventLogImplType == NULL_IMPL)
3084 // test cannot pass with NULL implementation
3087 if (EventLog.SourceExists ("monotempsource", "."))
3088 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3090 if (EventLog.Exists ("monologtemp", "."))
3091 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3093 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3095 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3096 eventLog.WriteEntry ("WriteEntry1a");
3098 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3099 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3100 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3101 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3102 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3103 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3105 EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
3106 Assert.IsNotNull (entry, "#B1");
3107 Assert.IsNotNull (entry.Category, "#B2");
3108 Assert.AreEqual ("(0)", entry.Category, "#B3");
3109 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3110 Assert.IsNotNull (entry.Data, "#B5");
3111 Assert.AreEqual (0, entry.Data.Length, "#B6");
3112 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3113 Assert.AreEqual (0, entry.EventID, "#B8");
3115 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3117 Assert.IsNotNull (entry.MachineName, "#B10");
3118 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3119 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3120 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3121 Assert.AreEqual ("WriteEntry1a", entry.ReplacementStrings[0], "#B14");
3122 Assert.IsNotNull (entry.Source, "#B15");
3123 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3124 Assert.IsNull (entry.UserName, "#B17");
3126 eventLog.WriteEntry ("WriteEntry1b" + Environment.NewLine + "ok");
3128 entry = eventLog.Entries [eventLog.Entries.Count - 1];
3129 Assert.IsNotNull (entry, "#C1");
3130 Assert.IsNotNull (entry.Category, "#C2");
3131 Assert.AreEqual ("(0)", entry.Category, "#C3");
3132 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
3133 Assert.IsNotNull (entry.Data, "#C5");
3134 Assert.AreEqual (0, entry.Data.Length, "#C6");
3135 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#C7");
3136 Assert.AreEqual (0, entry.EventID, "#C8");
3138 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
3140 Assert.IsNotNull (entry.MachineName, "#C10");
3141 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
3142 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
3143 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
3144 Assert.AreEqual ("WriteEntry1b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
3145 Assert.IsNotNull (entry.Source, "#C15");
3146 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
3147 Assert.IsNull (entry.UserName, "#C17");
3150 if (EventLog.Exists ("monologtemp"))
3151 EventLog.Delete ("monologtemp");
3156 public void WriteEntry1_Log_Empty ()
3158 if (EventLogImplType == NULL_IMPL)
3159 // test cannot pass with NULL implementation
3162 if (EventLog.SourceExists ("monotempsource", "."))
3163 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3165 bool applicationLogExists = EventLog.Exists ("Application", ".");
3167 // specified source does not exist, so use Application log
3169 using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
3170 eventLog.WriteEntry ("WriteEntry1_Log_Empty");
3171 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3172 Assert.AreEqual ("Application", eventLog.Log, "#A2");
3173 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3174 Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
3175 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3176 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3179 if (!applicationLogExists) {
3180 if (EventLog.Exists ("Application"))
3181 EventLog.Delete ("Application");
3183 if (EventLog.SourceExists ("monotempsource", "."))
3184 EventLog.DeleteEventSource ("monotempsource", ".");
3190 public void WriteEntry1_Log_Mismatch ()
3192 if (EventLogImplType == NULL_IMPL)
3193 // test cannot pass with NULL implementation
3196 if (EventLog.SourceExists ("monotempsource", "."))
3197 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3199 if (EventLog.Exists ("monologtemp", "."))
3200 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3202 if (EventLog.Exists ("monologother", "."))
3203 Assert.Ignore ("Event log 'monologother' should not exist.");
3205 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3207 using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
3208 eventLog.WriteEntry ("WriteEntry1_Log_Mismatch");
3210 } catch (ArgumentException ex) {
3211 // The source 'monotempsource' is not registered in log
3212 // 'monologother' (it is registered in log 'monologtemp').
3213 // The Source and Log properties must be matched, or you may
3214 // set Log to the empty string, and it will automatically be
3215 // matched to the Source property
3216 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
3217 Assert.IsNotNull (ex.Message, "#A3");
3218 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
3219 Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
3220 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
3221 Assert.IsNull (ex.InnerException, "#A7");
3223 if (EventLog.Exists ("monologtemp"))
3224 EventLog.Delete ("monologtemp");
3226 if (EventLog.Exists ("monologother"))
3227 EventLog.Delete ("monologother");
3232 public void WriteEntry1_Message_Empty ()
3234 if (EventLogImplType == NULL_IMPL)
3235 // test cannot pass with NULL implementation
3238 if (EventLog.SourceExists ("monotempsource", "."))
3239 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3241 if (EventLog.Exists ("monologtemp", "."))
3242 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3244 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3246 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3247 eventLog.WriteEntry (string.Empty);
3248 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3249 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3250 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3251 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3252 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3253 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3255 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3256 Assert.IsNotNull (entry, "#B1");
3257 Assert.IsNotNull (entry.Category, "#B2");
3258 Assert.AreEqual ("(0)", entry.Category, "#B3");
3259 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3260 Assert.IsNotNull (entry.Data, "#B5");
3261 Assert.AreEqual (0, entry.Data.Length, "#B6");
3262 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3263 Assert.AreEqual (0, entry.EventID, "#B8");
3265 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3267 Assert.IsNotNull (entry.MachineName, "#B10");
3268 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3269 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3270 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3271 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
3272 Assert.IsNotNull (entry.Source, "#B15");
3273 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3274 Assert.IsNull (entry.UserName, "#B17");
3277 if (EventLog.Exists ("monologtemp"))
3278 EventLog.Delete ("monologtemp");
3283 public void WriteEntry1_Message_Null ()
3285 if (EventLogImplType == NULL_IMPL)
3286 // test cannot pass with NULL implementation
3289 if (EventLog.SourceExists ("monotempsource", "."))
3290 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3292 if (EventLog.Exists ("monologtemp", "."))
3293 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3295 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3297 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3298 eventLog.WriteEntry (null);
3299 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3300 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3301 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3302 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3303 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3304 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3306 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3307 Assert.IsNotNull (entry, "#B1");
3308 Assert.IsNotNull (entry.Category, "#B2");
3309 Assert.AreEqual ("(0)", entry.Category, "#B3");
3310 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3311 Assert.IsNotNull (entry.Data, "#B5");
3312 Assert.AreEqual (0, entry.Data.Length, "#B6");
3313 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3314 Assert.AreEqual (0, entry.EventID, "#B8");
3316 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3318 Assert.IsNotNull (entry.MachineName, "#B10");
3319 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3320 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3321 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3322 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
3323 Assert.IsNotNull (entry.Source, "#B15");
3324 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3325 Assert.IsNull (entry.UserName, "#B17");
3328 if (EventLog.Exists ("monologtemp"))
3329 EventLog.Delete ("monologtemp");
3334 public void WriteEntry1_Source_DoesNotExist ()
3336 if (EventLogImplType == NULL_IMPL)
3337 // test cannot pass with NULL implementation
3340 if (EventLog.SourceExists ("monotempsource", "."))
3341 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3343 if (EventLog.SourceExists ("monoothersource", "."))
3344 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
3346 if (EventLog.Exists ("monologtemp", "."))
3347 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3349 EventLog.CreateEventSource ("monoothersource", "monologtemp");
3351 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3352 eventLog.WriteEntry ("WriteEntry1");
3353 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3354 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3355 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3356 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3357 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3358 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3360 EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
3361 Assert.IsNotNull (entry, "#B1");
3362 Assert.IsNotNull (entry.Category, "#B2");
3363 Assert.AreEqual ("(0)", entry.Category, "#B3");
3364 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3365 Assert.IsNotNull (entry.Data, "#B5");
3366 Assert.AreEqual (0, entry.Data.Length, "#B6");
3367 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3368 Assert.AreEqual (0, entry.EventID, "#B8");
3370 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3372 Assert.IsNotNull (entry.MachineName, "#B10");
3373 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3374 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3375 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3376 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings[0], "#B14");
3377 Assert.IsNotNull (entry.Source, "#B15");
3378 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3379 Assert.IsNull (entry.UserName, "#B17");
3382 if (EventLog.Exists ("monologtemp"))
3383 EventLog.Delete ("monologtemp");
3388 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
3389 public void WriteEntry1_Source_Empty ()
3391 EventLog eventLog = new EventLog ("monologtemp");
3392 eventLog.WriteEntry ("test");
3396 public void WriteEntry2 ()
3398 if (EventLogImplType == NULL_IMPL)
3399 // test cannot pass with NULL implementation
3402 if (EventLog.SourceExists ("monotempsource", "."))
3403 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3405 if (EventLog.Exists ("monologtemp", "."))
3406 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3408 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3410 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3411 eventLog.WriteEntry ("WriteEntry2a", EventLogEntryType.Information);
3413 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3414 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3415 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3416 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3417 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3418 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3420 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3421 Assert.IsNotNull (entry, "#B1");
3422 Assert.IsNotNull (entry.Category, "#B2");
3423 Assert.AreEqual ("(0)", entry.Category, "#B3");
3424 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3425 Assert.IsNotNull (entry.Data, "#B5");
3426 Assert.AreEqual (0, entry.Data.Length, "#B6");
3427 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3428 Assert.AreEqual (0, entry.EventID, "#B8");
3430 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3432 Assert.IsNotNull (entry.MachineName, "#B10");
3433 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3434 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3435 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3436 Assert.AreEqual ("WriteEntry2a", entry.ReplacementStrings [0], "#B14");
3437 Assert.IsNotNull (entry.Source, "#B15");
3438 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3439 Assert.IsNull (entry.UserName, "#B17");
3441 eventLog.WriteEntry ("WriteEntry2b" + Environment.NewLine + "ok", EventLogEntryType.Error);
3443 entry = eventLog.Entries [eventLog.Entries.Count - 1];
3444 Assert.IsNotNull (entry, "#C1");
3445 Assert.IsNotNull (entry.Category, "#C2");
3446 Assert.AreEqual ("(0)", entry.Category, "#C3");
3447 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
3448 Assert.IsNotNull (entry.Data, "#C5");
3449 Assert.AreEqual (0, entry.Data.Length, "#C6");
3450 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
3451 Assert.AreEqual (0, entry.EventID, "#C8");
3453 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
3455 Assert.IsNotNull (entry.MachineName, "#C10");
3456 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
3457 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
3458 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
3459 Assert.AreEqual ("WriteEntry2b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
3460 Assert.IsNotNull (entry.Source, "#C15");
3461 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
3462 Assert.IsNull (entry.UserName, "#C17");
3465 if (EventLog.Exists ("monologtemp"))
3466 EventLog.Delete ("monologtemp");
3471 public void WriteEntry2_Log_Empty ()
3473 if (EventLogImplType == NULL_IMPL)
3474 // test cannot pass with NULL implementation
3477 if (EventLog.SourceExists ("monotempsource", "."))
3478 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3480 bool applicationLogExists = EventLog.Exists ("Application", ".");
3482 // specified source does not exist, so use Application log
3484 using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
3485 eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error);
3486 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3487 Assert.AreEqual ("Application", eventLog.Log, "#A2");
3488 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3489 Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
3490 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3491 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3494 if (!applicationLogExists) {
3495 if (EventLog.Exists ("Application"))
3496 EventLog.Delete ("Application");
3498 if (EventLog.SourceExists ("monotempsource", "."))
3499 EventLog.DeleteEventSource ("monotempsource", ".");
3505 public void WriteEntry2_Log_Mismatch ()
3507 if (EventLogImplType == NULL_IMPL)
3508 // test cannot pass with NULL implementation
3511 if (EventLog.SourceExists ("monotempsource", "."))
3512 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3514 if (EventLog.Exists ("monologtemp", "."))
3515 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3517 if (EventLog.Exists ("monologother", "."))
3518 Assert.Ignore ("Event log 'monologother' should not exist.");
3520 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3522 using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
3525 eventLog.WriteEntry ("WriteEntry2_Log_Mismatch1",
3526 EventLogEntryType.Error);
3527 Assert.Fail ("#A1");
3528 } catch (ArgumentException ex) {
3529 // The source 'monotempsource' is not registered in log
3530 // 'monologother' (it is registered in log 'monologtemp').
3531 // The Source and Log properties must be matched, or you may
3532 // set Log to the empty string, and it will automatically be
3533 // matched to the Source property
3534 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
3535 Assert.IsNotNull (ex.Message, "#A3");
3536 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
3537 Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
3538 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
3539 Assert.IsNull (ex.InnerException, "#A7");
3544 eventLog.WriteEntry ("WriteEntry2_Log_Mismatch2",
3545 (EventLogEntryType) 666);
3546 Assert.Fail ("#B1");
3547 } catch (InvalidEnumArgumentException) {
3551 if (EventLog.Exists ("monologtemp"))
3552 EventLog.Delete ("monologtemp");
3554 if (EventLog.Exists ("monologother"))
3555 EventLog.Delete ("monologother");
3560 public void WriteEntry2_Message_Empty ()
3562 if (EventLogImplType == NULL_IMPL)
3563 // test cannot pass with NULL implementation
3566 if (EventLog.SourceExists ("monotempsource", "."))
3567 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3569 if (EventLog.Exists ("monologtemp", "."))
3570 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3572 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3574 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3575 eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit);
3576 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3577 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3578 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3579 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3580 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3581 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3583 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3584 Assert.IsNotNull (entry, "#B1");
3585 Assert.IsNotNull (entry.Category, "#B2");
3586 Assert.AreEqual ("(0)", entry.Category, "#B3");
3587 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3588 Assert.IsNotNull (entry.Data, "#B5");
3589 Assert.AreEqual (0, entry.Data.Length, "#B6");
3590 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
3591 Assert.AreEqual (0, entry.EventID, "#B8");
3593 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3595 Assert.IsNotNull (entry.MachineName, "#B10");
3596 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3597 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3598 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3599 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
3600 Assert.IsNotNull (entry.Source, "#B15");
3601 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3602 Assert.IsNull (entry.UserName, "#B17");
3605 if (EventLog.Exists ("monologtemp"))
3606 EventLog.Delete ("monologtemp");
3611 public void WriteEntry2_Message_Null ()
3613 if (EventLogImplType == NULL_IMPL)
3614 // test cannot pass with NULL implementation
3617 if (EventLog.SourceExists ("monotempsource", "."))
3618 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3620 if (EventLog.Exists ("monologtemp", "."))
3621 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3623 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3625 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3626 eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit);
3627 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3628 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3629 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3630 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3631 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3632 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3634 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3635 Assert.IsNotNull (entry, "#B1");
3636 Assert.IsNotNull (entry.Category, "#B2");
3637 Assert.AreEqual ("(0)", entry.Category, "#B3");
3638 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3639 Assert.IsNotNull (entry.Data, "#B5");
3640 Assert.AreEqual (0, entry.Data.Length, "#B6");
3641 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
3642 Assert.AreEqual (0, entry.EventID, "#B8");
3644 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3646 Assert.IsNotNull (entry.MachineName, "#B10");
3647 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3648 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3649 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3650 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
3651 Assert.IsNotNull (entry.Source, "#B15");
3652 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3653 Assert.IsNull (entry.UserName, "#B17");
3656 if (EventLog.Exists ("monologtemp"))
3657 EventLog.Delete ("monologtemp");
3662 public void WriteEntry2_Source_DoesNotExist ()
3664 if (EventLogImplType == NULL_IMPL)
3665 // test cannot pass with NULL implementation
3668 if (EventLog.SourceExists ("monotempsource", "."))
3669 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3671 if (EventLog.SourceExists ("monoothersource", "."))
3672 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
3674 if (EventLog.Exists ("monologtemp", "."))
3675 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3677 EventLog.CreateEventSource ("monoothersource", "monologtemp");
3679 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3680 eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning);
3681 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3682 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3683 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3684 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3685 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3686 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3688 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3689 Assert.IsNotNull (entry, "#B1");
3690 Assert.IsNotNull (entry.Category, "#B2");
3691 Assert.AreEqual ("(0)", entry.Category, "#B3");
3692 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3693 Assert.IsNotNull (entry.Data, "#B5");
3694 Assert.AreEqual (0, entry.Data.Length, "#B6");
3695 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
3696 Assert.AreEqual (0, entry.EventID, "#B8");
3698 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3700 Assert.IsNotNull (entry.MachineName, "#B10");
3701 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3702 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3703 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3704 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
3705 Assert.IsNotNull (entry.Source, "#B15");
3706 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3707 Assert.IsNull (entry.UserName, "#B17");
3710 if (EventLog.Exists ("monologtemp"))
3711 EventLog.Delete ("monologtemp");
3716 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
3717 public void WriteEntry2_Source_Empty ()
3719 EventLog eventLog = new EventLog ("monologtemp");
3720 eventLog.WriteEntry ("test", EventLogEntryType.Information);
3724 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
3725 public void WriteEntry2_Type_NotDefined ()
3727 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
3728 eventLog.WriteEntry ("test", (EventLogEntryType) 666);
3732 public void WriteEntry3 ()
3734 if (EventLogImplType == NULL_IMPL)
3735 // test cannot pass with NULL implementation
3738 if (EventLog.SourceExists ("monotempsource", "."))
3739 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3741 if (EventLog.Exists ("monologtemp", "."))
3742 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3744 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3746 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3747 EventLog.WriteEntry ("monotempsource", "WriteEntry3a");
3749 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3750 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3751 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3752 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3753 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3754 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3756 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3757 Assert.IsNotNull (entry, "#B1");
3758 Assert.IsNotNull (entry.Category, "#B2");
3759 Assert.AreEqual ("(0)", entry.Category, "#B3");
3760 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3761 Assert.IsNotNull (entry.Data, "#B5");
3762 Assert.AreEqual (0, entry.Data.Length, "#B6");
3763 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3764 Assert.AreEqual (0, entry.EventID, "#B8");
3766 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3768 Assert.IsNotNull (entry.MachineName, "#B10");
3769 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3770 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3771 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3772 Assert.AreEqual ("WriteEntry3a", entry.ReplacementStrings [0], "#B14");
3773 Assert.IsNotNull (entry.Source, "#B15");
3774 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3775 Assert.IsNull (entry.UserName, "#B17");
3777 EventLog.WriteEntry ("monotempsource", "WriteEntry3b"
3778 + Environment.NewLine + "ok");
3780 entry = eventLog.Entries [eventLog.Entries.Count - 1];
3781 Assert.IsNotNull (entry, "#C1");
3782 Assert.IsNotNull (entry.Category, "#C2");
3783 Assert.AreEqual ("(0)", entry.Category, "#C3");
3784 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
3785 Assert.IsNotNull (entry.Data, "#C5");
3786 Assert.AreEqual (0, entry.Data.Length, "#C6");
3787 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#C7");
3788 Assert.AreEqual (0, entry.EventID, "#C8");
3790 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
3792 Assert.IsNotNull (entry.MachineName, "#C10");
3793 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
3794 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
3795 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
3796 Assert.AreEqual ("WriteEntry3b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
3797 Assert.IsNotNull (entry.Source, "#C15");
3798 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
3799 Assert.IsNull (entry.UserName, "#C17");
3802 if (EventLog.Exists ("monologtemp"))
3803 EventLog.Delete ("monologtemp");
3808 public void WriteEntry3_Message_Empty ()
3810 if (EventLogImplType == NULL_IMPL)
3811 // test cannot pass with NULL implementation
3814 if (EventLog.SourceExists ("monotempsource", "."))
3815 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3817 if (EventLog.Exists ("monologtemp", "."))
3818 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3820 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3822 EventLog.WriteEntry ("monotempsource", string.Empty);
3824 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3825 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3826 Assert.IsNotNull (entry, "#A1");
3827 Assert.IsNotNull (entry.Category, "#A2");
3828 Assert.AreEqual ("(0)", entry.Category, "#A3");
3829 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
3830 Assert.IsNotNull (entry.Data, "#A5");
3831 Assert.AreEqual (0, entry.Data.Length, "#A6");
3832 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#A7");
3833 Assert.AreEqual (0, entry.EventID, "#A8");
3835 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
3837 Assert.IsNotNull (entry.MachineName, "#A10");
3838 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
3839 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
3840 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
3841 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
3842 Assert.IsNotNull (entry.Source, "#A15");
3843 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
3844 Assert.IsNull (entry.UserName, "#A17");
3847 if (EventLog.Exists ("monologtemp"))
3848 EventLog.Delete ("monologtemp");
3853 public void WriteEntry3_Message_Null ()
3855 if (EventLogImplType == NULL_IMPL)
3856 // test cannot pass with NULL implementation
3859 if (EventLog.SourceExists ("monotempsource", "."))
3860 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3862 if (EventLog.Exists ("monologtemp", "."))
3863 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3865 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3867 EventLog.WriteEntry ("monotempsource", null);
3869 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3870 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3871 Assert.IsNotNull (entry, "#A1");
3872 Assert.IsNotNull (entry.Category, "#A2");
3873 Assert.AreEqual ("(0)", entry.Category, "#A3");
3874 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
3875 Assert.IsNotNull (entry.Data, "#A5");
3876 Assert.AreEqual (0, entry.Data.Length, "#A6");
3877 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#A7");
3878 Assert.AreEqual (0, entry.EventID, "#A8");
3880 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
3882 Assert.IsNotNull (entry.MachineName, "#A10");
3883 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
3884 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
3885 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
3886 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
3887 Assert.IsNotNull (entry.Source, "#A15");
3888 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
3889 Assert.IsNull (entry.UserName, "#A17");
3892 if (EventLog.Exists ("monologtemp"))
3893 EventLog.Delete ("monologtemp");
3898 public void WriteEntry3_Source_DoesNotExist ()
3900 if (EventLogImplType == NULL_IMPL)
3901 // test cannot pass with NULL implementation
3904 if (EventLog.SourceExists ("monotempsource", "."))
3905 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3907 bool applicationLogExists = EventLog.Exists ("Application");
3909 EventLog.WriteEntry ("monotempsource", "test");
3911 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
3912 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
3913 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
3915 if (EventLogImplType == WIN32_IMPL)
3916 // win32 API does not return entries in order for
3920 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
3921 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3922 Assert.IsNotNull (entry, "#B1");
3923 Assert.IsNotNull (entry.Category, "#B2");
3924 Assert.AreEqual ("(0)", entry.Category, "#B3");
3925 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3926 Assert.IsNotNull (entry.Data, "#B5");
3927 Assert.AreEqual (0, entry.Data.Length, "#B6");
3928 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3929 Assert.AreEqual (0, entry.EventID, "#B8");
3931 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
3933 Assert.IsNotNull (entry.MachineName, "#B10");
3934 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
3935 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
3936 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
3937 Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
3938 Assert.IsNotNull (entry.Source, "#B15");
3939 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
3940 Assert.IsNull (entry.UserName, "#B17");
3943 if (!applicationLogExists) {
3944 if (EventLog.Exists ("Application"))
3945 EventLog.Delete ("Application");
3947 if (EventLog.SourceExists ("monotempsource", "."))
3948 EventLog.DeleteEventSource ("monotempsource", ".");
3954 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
3955 public void WriteEntry3_Source_Empty ()
3957 EventLog.WriteEntry (string.Empty, "test");
3961 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
3962 public void WriteEntry3_Source_Null ()
3964 EventLog.WriteEntry (null, "test");
3968 public void WriteEntry4 ()
3970 if (EventLogImplType == NULL_IMPL)
3971 // test cannot pass with NULL implementation
3974 if (EventLog.SourceExists ("monotempsource", "."))
3975 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
3977 if (EventLog.Exists ("monologtemp", "."))
3978 Assert.Ignore ("Event log 'monologtemp' should not exist.");
3980 EventLog.CreateEventSource ("monotempsource", "monologtemp");
3982 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
3983 eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Information, 56);
3984 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
3985 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
3986 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
3987 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
3988 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
3989 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
3991 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
3992 Assert.IsNotNull (entry, "#B1");
3993 Assert.IsNotNull (entry.Category, "#B2");
3994 Assert.AreEqual ("(0)", entry.Category, "#B3");
3995 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
3996 Assert.IsNotNull (entry.Data, "#B5");
3997 Assert.AreEqual (0, entry.Data.Length, "#B6");
3998 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
3999 Assert.AreEqual (56, entry.EventID, "#B8");
4001 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4003 Assert.IsNotNull (entry.MachineName, "#B10");
4004 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4005 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4006 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4007 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
4008 Assert.IsNotNull (entry.Source, "#B15");
4009 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4010 Assert.IsNull (entry.UserName, "#B17");
4012 eventLog.WriteEntry ("WriteEntry2", EventLogEntryType.Error, 0);
4014 entry = eventLog.Entries [eventLog.Entries.Count - 1];
4015 Assert.IsNotNull (entry, "#C1");
4016 Assert.IsNotNull (entry.Category, "#C2");
4017 Assert.AreEqual ("(0)", entry.Category, "#C3");
4018 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
4019 Assert.IsNotNull (entry.Data, "#C5");
4020 Assert.AreEqual (0, entry.Data.Length, "#C6");
4021 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
4022 Assert.AreEqual (0, entry.EventID, "#C8");
4024 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
4026 Assert.IsNotNull (entry.MachineName, "#C10");
4027 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
4028 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
4029 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
4030 Assert.AreEqual ("WriteEntry2", entry.ReplacementStrings [0], "#C14");
4031 Assert.IsNotNull (entry.Source, "#C15");
4032 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
4033 Assert.IsNull (entry.UserName, "#C17");
4035 eventLog.WriteEntry ("WriteEntry2", EventLogEntryType.Error, ushort.MaxValue);
4037 entry = eventLog.Entries [eventLog.Entries.Count - 1];
4038 Assert.IsNotNull (entry, "#D1");
4039 Assert.IsNotNull (entry.Category, "#D2");
4040 Assert.AreEqual ("(0)", entry.Category, "#D3");
4041 Assert.AreEqual (0, entry.CategoryNumber, "#D4");
4042 Assert.IsNotNull (entry.Data, "#D5");
4043 Assert.AreEqual (0, entry.Data.Length, "#D6");
4044 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
4045 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
4047 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
4049 Assert.IsNotNull (entry.MachineName, "#D10");
4050 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
4051 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
4052 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
4053 Assert.AreEqual ("WriteEntry2", entry.ReplacementStrings [0], "#D14");
4054 Assert.IsNotNull (entry.Source, "#D15");
4055 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
4056 Assert.IsNull (entry.UserName, "#D17");
4059 if (EventLog.Exists ("monologtemp"))
4060 EventLog.Delete ("monologtemp");
4065 public void WriteEntry4_EventID_Invalid ()
4067 if (EventLogImplType == NULL_IMPL)
4068 // test cannot pass with NULL implementation
4071 if (EventLog.SourceExists ("monotempsource", "."))
4072 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4074 if (EventLog.Exists ("monologtemp", "."))
4075 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4077 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
4080 eventLog.WriteEntry ("test", EventLogEntryType.Information, -1);
4081 Assert.Fail ("#A1");
4082 } catch (ArgumentException ex) {
4083 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
4084 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
4085 Assert.IsNotNull (ex.Message, "#A3");
4086 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
4087 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
4088 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
4089 Assert.IsNull (ex.InnerException, "#A7");
4091 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
4092 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
4093 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
4095 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A8");
4096 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
4097 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
4100 if (EventLog.Exists ("monologtemp"))
4101 EventLog.Delete ("monologtemp");
4105 eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536);
4106 Assert.Fail ("#B1");
4107 } catch (ArgumentException ex) {
4108 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
4109 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
4110 Assert.IsNotNull (ex.Message, "#B3");
4111 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
4112 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
4113 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
4114 Assert.IsNull (ex.InnerException, "#B7");
4116 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
4117 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
4118 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
4120 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#B8");
4121 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
4122 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
4125 if (EventLog.Exists ("monologtemp"))
4126 EventLog.Delete ("monologtemp");
4131 public void WriteEntry4_Log_Empty ()
4133 if (EventLogImplType == NULL_IMPL)
4134 // test cannot pass with NULL implementation
4137 if (EventLog.SourceExists ("monotempsource", "."))
4138 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4140 bool applicationLogExists = EventLog.Exists ("Application", ".");
4142 // specified source does not exist, so use Application log
4144 using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
4145 eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555);
4146 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4147 Assert.AreEqual ("Application", eventLog.Log, "#A2");
4148 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4149 Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
4150 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4151 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4154 if (!applicationLogExists) {
4155 if (EventLog.Exists ("Application"))
4156 EventLog.Delete ("Application");
4158 if (EventLog.SourceExists ("monotempsource", "."))
4159 EventLog.DeleteEventSource ("monotempsource", ".");
4165 public void WriteEntry4_Log_Mismatch ()
4167 if (EventLogImplType == NULL_IMPL)
4168 // test cannot pass with NULL implementation
4171 if (EventLog.SourceExists ("monotempsource", "."))
4172 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4174 if (EventLog.Exists ("monologtemp", "."))
4175 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4177 if (EventLog.Exists ("monologother", "."))
4178 Assert.Ignore ("Event log 'monologother' should not exist.");
4180 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4182 using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
4185 eventLog.WriteEntry ("WriteEntry4_Log_Mismatch1",
4186 EventLogEntryType.Error, 555);
4187 Assert.Fail ("#A1");
4188 } catch (ArgumentException ex) {
4189 // The source 'monotempsource' is not registered in log
4190 // 'monologother' (it is registered in log 'monologtemp').
4191 // The Source and Log properties must be matched, or you may
4192 // set Log to the empty string, and it will automatically be
4193 // matched to the Source property
4194 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
4195 Assert.IsNotNull (ex.Message, "#A3");
4196 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
4197 Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
4198 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
4199 Assert.IsNull (ex.InnerException, "#A7");
4204 eventLog.WriteEntry ("WriteEntry4_Log_Mismatch2",
4205 (EventLogEntryType) 666, 555);
4206 Assert.Fail ("#B1");
4207 } catch (InvalidEnumArgumentException) {
4212 eventLog.WriteEntry ("WriteEntry4_Log_Mismatch3",
4213 EventLogEntryType.Error, -1);
4214 Assert.Fail ("#C1");
4215 } catch (ArgumentException ex) {
4216 // The source 'monotempsource' is not registered in log
4217 // 'monologother' (it is registered in log 'monologtemp').
4218 // The Source and Log properties must be matched, or you may
4219 // set Log to the empty string, and it will automatically be
4220 // matched to the Source property
4221 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
4222 Assert.IsNotNull (ex.Message, "#C3");
4223 Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
4224 Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
4225 Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
4226 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
4227 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
4228 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
4229 Assert.IsNull (ex.InnerException, "#C10");
4233 if (EventLog.Exists ("monologtemp"))
4234 EventLog.Delete ("monologtemp");
4236 if (EventLog.Exists ("monologother"))
4237 EventLog.Delete ("monologother");
4242 public void WriteEntry4_Message_Empty ()
4244 if (EventLogImplType == NULL_IMPL)
4245 // test cannot pass with NULL implementation
4248 if (EventLog.SourceExists ("monotempsource", "."))
4249 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4251 if (EventLog.Exists ("monologtemp", "."))
4252 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4254 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4256 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4257 eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888);
4258 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4259 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4260 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4261 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4262 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4263 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4265 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4266 Assert.IsNotNull (entry, "#B1");
4267 Assert.IsNotNull (entry.Category, "#B2");
4268 Assert.AreEqual ("(0)", entry.Category, "#B3");
4269 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
4270 Assert.IsNotNull (entry.Data, "#B5");
4271 Assert.AreEqual (0, entry.Data.Length, "#B6");
4272 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
4273 Assert.AreEqual (888, entry.EventID, "#B8");
4275 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4277 Assert.IsNotNull (entry.MachineName, "#B10");
4278 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4279 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4280 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4281 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
4282 Assert.IsNotNull (entry.Source, "#B15");
4283 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4284 Assert.IsNull (entry.UserName, "#B17");
4287 if (EventLog.Exists ("monologtemp"))
4288 EventLog.Delete ("monologtemp");
4293 public void WriteEntry4_Message_Null ()
4295 if (EventLogImplType == NULL_IMPL)
4296 // test cannot pass with NULL implementation
4299 if (EventLog.SourceExists ("monotempsource", "."))
4300 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4302 if (EventLog.Exists ("monologtemp", "."))
4303 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4305 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4307 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4308 eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343);
4309 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4310 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4311 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4312 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4313 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4314 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4316 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4317 Assert.IsNotNull (entry, "#B1");
4318 Assert.IsNotNull (entry.Category, "#B2");
4319 Assert.AreEqual ("(0)", entry.Category, "#B3");
4320 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
4321 Assert.IsNotNull (entry.Data, "#B5");
4322 Assert.AreEqual (0, entry.Data.Length, "#B6");
4323 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
4324 Assert.AreEqual (343, entry.EventID, "#B8");
4326 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4328 Assert.IsNotNull (entry.MachineName, "#B10");
4329 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4330 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4331 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4332 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
4333 Assert.IsNotNull (entry.Source, "#B15");
4334 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4335 Assert.IsNull (entry.UserName, "#B17");
4338 if (EventLog.Exists ("monologtemp"))
4339 EventLog.Delete ("monologtemp");
4344 public void WriteEntry4_Source_DoesNotExist ()
4346 if (EventLogImplType == NULL_IMPL)
4347 // test cannot pass with NULL implementation
4350 if (EventLog.SourceExists ("monotempsource", "."))
4351 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4353 if (EventLog.SourceExists ("monoothersource", "."))
4354 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
4356 if (EventLog.Exists ("monologtemp", "."))
4357 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4359 EventLog.CreateEventSource ("monoothersource", "monologtemp");
4361 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4362 eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2);
4363 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4364 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4365 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4366 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4367 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4368 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4370 if (EventLogImplType == WIN32_IMPL)
4371 // win32 API does not return entries in order for
4375 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4376 Assert.IsNotNull (entry, "#B1");
4377 Assert.IsNotNull (entry.Category, "#B2");
4378 Assert.AreEqual ("(0)", entry.Category, "#B3");
4379 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
4380 Assert.IsNotNull (entry.Data, "#B5");
4381 Assert.AreEqual (0, entry.Data.Length, "#B6");
4382 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
4383 Assert.AreEqual (2, entry.EventID, "#B8");
4385 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4387 Assert.IsNotNull (entry.MachineName, "#B10");
4388 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4389 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4390 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4391 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
4392 Assert.IsNotNull (entry.Source, "#B15");
4393 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4394 Assert.IsNull (entry.UserName, "#B17");
4397 if (EventLog.Exists ("monologtemp"))
4398 EventLog.Delete ("monologtemp");
4403 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
4404 public void WriteEntry4_Source_Empty ()
4406 EventLog eventLog = new EventLog ("monologtemp");
4407 eventLog.WriteEntry ("test", EventLogEntryType.Information, 56);
4411 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
4412 public void WriteEntry4_Type_NotDefined ()
4414 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
4415 eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44);
4419 public void WriteEntry5 ()
4421 if (EventLogImplType == NULL_IMPL)
4422 // test cannot pass with NULL implementation
4425 if (EventLog.SourceExists ("monotempsource", "."))
4426 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4428 if (EventLog.Exists ("monologtemp", "."))
4429 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4431 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4433 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4434 EventLog.WriteEntry ("monotempsource", "WriteEntry3a",
4435 EventLogEntryType.Information);
4437 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4438 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4439 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4440 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4441 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4442 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4444 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4445 Assert.IsNotNull (entry, "#B1");
4446 Assert.IsNotNull (entry.Category, "#B2");
4447 Assert.AreEqual ("(0)", entry.Category, "#B3");
4448 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
4449 Assert.IsNotNull (entry.Data, "#B5");
4450 Assert.AreEqual (0, entry.Data.Length, "#B6");
4451 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
4452 Assert.AreEqual (0, entry.EventID, "#B8");
4454 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4456 Assert.IsNotNull (entry.MachineName, "#B10");
4457 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4458 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4459 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4460 Assert.AreEqual ("WriteEntry3a", entry.ReplacementStrings [0], "#B14");
4461 Assert.IsNotNull (entry.Source, "#B15");
4462 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4463 Assert.IsNull (entry.UserName, "#B17");
4465 EventLog.WriteEntry ("monotempsource", "WriteEntry3b"
4466 + Environment.NewLine + "ok", EventLogEntryType.Error);
4468 entry = eventLog.Entries [eventLog.Entries.Count - 1];
4469 Assert.IsNotNull (entry, "#C1");
4470 Assert.IsNotNull (entry.Category, "#C2");
4471 Assert.AreEqual ("(0)", entry.Category, "#C3");
4472 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
4473 Assert.IsNotNull (entry.Data, "#C5");
4474 Assert.AreEqual (0, entry.Data.Length, "#C6");
4475 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
4476 Assert.AreEqual (0, entry.EventID, "#C8");
4478 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
4480 Assert.IsNotNull (entry.MachineName, "#C10");
4481 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
4482 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
4483 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
4484 Assert.AreEqual ("WriteEntry3b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
4485 Assert.IsNotNull (entry.Source, "#C15");
4486 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
4487 Assert.IsNull (entry.UserName, "#C17");
4490 if (EventLog.Exists ("monologtemp"))
4491 EventLog.Delete ("monologtemp");
4496 public void WriteEntry5_Message_Empty ()
4498 if (EventLogImplType == NULL_IMPL)
4499 // test cannot pass with NULL implementation
4502 if (EventLog.SourceExists ("monotempsource", "."))
4503 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4505 if (EventLog.Exists ("monologtemp", "."))
4506 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4508 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4510 EventLog.WriteEntry ("monotempsource", string.Empty, EventLogEntryType.Error);
4512 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4513 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4514 Assert.IsNotNull (entry, "#A1");
4515 Assert.IsNotNull (entry.Category, "#A2");
4516 Assert.AreEqual ("(0)", entry.Category, "#A3");
4517 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
4518 Assert.IsNotNull (entry.Data, "#A5");
4519 Assert.AreEqual (0, entry.Data.Length, "#A6");
4520 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
4521 Assert.AreEqual (0, entry.EventID, "#A8");
4523 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
4525 Assert.IsNotNull (entry.MachineName, "#A10");
4526 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
4527 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
4528 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
4529 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
4530 Assert.IsNotNull (entry.Source, "#A15");
4531 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
4532 Assert.IsNull (entry.UserName, "#A17");
4535 if (EventLog.Exists ("monologtemp"))
4536 EventLog.Delete ("monologtemp");
4541 public void WriteEntry5_Message_Null ()
4543 if (EventLogImplType == NULL_IMPL)
4544 // test cannot pass with NULL implementation
4547 if (EventLog.SourceExists ("monotempsource", "."))
4548 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4550 if (EventLog.Exists ("monologtemp", "."))
4551 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4553 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4555 EventLog.WriteEntry ("monotempsource", null, EventLogEntryType.FailureAudit);
4557 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4558 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4559 Assert.IsNotNull (entry, "#A1");
4560 Assert.IsNotNull (entry.Category, "#A2");
4561 Assert.AreEqual ("(0)", entry.Category, "#A3");
4562 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
4563 Assert.IsNotNull (entry.Data, "#A5");
4564 Assert.AreEqual (0, entry.Data.Length, "#A6");
4565 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
4566 Assert.AreEqual (0, entry.EventID, "#A8");
4568 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
4570 Assert.IsNotNull (entry.MachineName, "#A10");
4571 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
4572 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
4573 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
4574 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
4575 Assert.IsNotNull (entry.Source, "#A15");
4576 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
4577 Assert.IsNull (entry.UserName, "#A17");
4580 if (EventLog.Exists ("monologtemp"))
4581 EventLog.Delete ("monologtemp");
4586 public void WriteEntry5_Source_DoesNotExist ()
4588 if (EventLogImplType == NULL_IMPL)
4589 // test cannot pass with NULL implementation
4592 if (EventLog.SourceExists ("monotempsource", "."))
4593 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4595 bool applicationLogExists = EventLog.Exists ("Application");
4597 EventLog.WriteEntry ("monotempsource", "test", EventLogEntryType.SuccessAudit);
4599 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
4600 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
4601 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
4603 if (EventLogImplType == WIN32_IMPL)
4604 // win32 API does not return entries in order for
4608 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
4609 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4610 Assert.IsNotNull (entry, "#B1");
4611 Assert.IsNotNull (entry.Category, "#B2");
4612 Assert.AreEqual ("(0)", entry.Category, "#B3");
4613 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
4614 Assert.IsNotNull (entry.Data, "#B5");
4615 Assert.AreEqual (0, entry.Data.Length, "#B6");
4616 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
4617 Assert.AreEqual (0, entry.EventID, "#B8");
4619 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4621 Assert.IsNotNull (entry.MachineName, "#B10");
4622 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4623 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4624 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4625 Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
4626 Assert.IsNotNull (entry.Source, "#B15");
4627 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4628 Assert.IsNull (entry.UserName, "#B17");
4631 if (!applicationLogExists) {
4632 if (EventLog.Exists ("Application"))
4633 EventLog.Delete ("Application");
4635 if (EventLog.SourceExists ("monotempsource", "."))
4636 EventLog.DeleteEventSource ("monotempsource", ".");
4642 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
4643 public void WriteEntry5_Source_Empty ()
4645 EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning);
4649 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
4650 public void WriteEntry5_Source_Null ()
4652 EventLog.WriteEntry (null, "test", EventLogEntryType.Error);
4656 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
4657 public void WriteEntry5_Type_NotDefined ()
4659 EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666);
4663 public void WriteEntry6 ()
4665 if (EventLogImplType == NULL_IMPL)
4666 // test cannot pass with NULL implementation
4669 if (EventLog.SourceExists ("monotempsource", "."))
4670 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4672 if (EventLog.Exists ("monologtemp", "."))
4673 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4675 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4677 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4678 eventLog.WriteEntry ("WriteEntry6a", EventLogEntryType.Information, 56, 3);
4680 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4681 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4682 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4683 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4684 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4685 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4687 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4688 Assert.IsNotNull (entry, "#B1");
4689 Assert.IsNotNull (entry.Category, "#B2");
4690 Assert.AreEqual ("(3)", entry.Category, "#B3");
4691 Assert.AreEqual (3, entry.CategoryNumber, "#B4");
4692 Assert.IsNotNull (entry.Data, "#B5");
4693 Assert.AreEqual (0, entry.Data.Length, "#B6");
4694 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
4695 Assert.AreEqual (56, entry.EventID, "#B8");
4697 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4699 Assert.IsNotNull (entry.MachineName, "#B10");
4700 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4701 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4702 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4703 Assert.AreEqual ("WriteEntry6a", entry.ReplacementStrings [0], "#B14");
4704 Assert.IsNotNull (entry.Source, "#B15");
4705 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4706 Assert.IsNull (entry.UserName, "#B17");
4708 eventLog.WriteEntry ("WriteEntry6b" + Environment.NewLine + "ok",
4709 EventLogEntryType.Error, 0, 0);
4711 entry = eventLog.Entries [eventLog.Entries.Count - 1];
4712 Assert.IsNotNull (entry, "#C1");
4713 Assert.IsNotNull (entry.Category, "#C2");
4714 Assert.AreEqual ("(0)", entry.Category, "#C3");
4715 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
4716 Assert.IsNotNull (entry.Data, "#C5");
4717 Assert.AreEqual (0, entry.Data.Length, "#C6");
4718 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
4719 Assert.AreEqual (0, entry.EventID, "#C8");
4721 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
4723 Assert.IsNotNull (entry.MachineName, "#C10");
4724 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
4725 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
4726 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
4727 Assert.AreEqual ("WriteEntry6b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
4728 Assert.IsNotNull (entry.Source, "#C15");
4729 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
4730 Assert.IsNull (entry.UserName, "#C17");
4732 eventLog.WriteEntry ("WriteEntry6c", EventLogEntryType.Error,
4733 ushort.MaxValue, short.MaxValue);
4735 entry = eventLog.Entries [eventLog.Entries.Count - 1];
4736 Assert.IsNotNull (entry, "#D1");
4737 Assert.IsNotNull (entry.Category, "#D2");
4738 Assert.AreEqual ("(32767)", entry.Category, "#D3");
4739 Assert.AreEqual (short.MaxValue, entry.CategoryNumber, "#D4");
4740 Assert.IsNotNull (entry.Data, "#D5");
4741 Assert.AreEqual (0, entry.Data.Length, "#D6");
4742 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
4743 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
4745 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
4747 Assert.IsNotNull (entry.MachineName, "#D10");
4748 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
4749 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
4750 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
4751 Assert.AreEqual ("WriteEntry6c", entry.ReplacementStrings [0], "#D14");
4752 Assert.IsNotNull (entry.Source, "#D15");
4753 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
4754 Assert.IsNull (entry.UserName, "#D17");
4757 if (EventLog.Exists ("monologtemp"))
4758 EventLog.Delete ("monologtemp");
4763 public void WriteEntry6_EventID_Invalid ()
4765 if (EventLogImplType == NULL_IMPL)
4766 // test cannot pass with NULL implementation
4769 if (EventLog.SourceExists ("monotempsource", "."))
4770 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4772 if (EventLog.Exists ("monologtemp", "."))
4773 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4775 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
4778 eventLog.WriteEntry ("test", EventLogEntryType.Information, -1, 5);
4779 Assert.Fail ("#A1");
4780 } catch (ArgumentException ex) {
4781 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
4782 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
4783 Assert.IsNotNull (ex.Message, "#A3");
4784 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
4785 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
4786 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
4787 Assert.IsNull (ex.InnerException, "#A7");
4789 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
4790 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
4791 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
4793 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A8");
4794 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
4795 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
4798 if (EventLog.Exists ("monologtemp"))
4799 EventLog.Delete ("monologtemp");
4803 eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536, 5);
4804 Assert.Fail ("#B1");
4805 } catch (ArgumentException ex) {
4806 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
4807 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
4808 Assert.IsNotNull (ex.Message, "#B3");
4809 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
4810 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
4811 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
4812 Assert.IsNull (ex.InnerException, "#B7");
4814 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
4815 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
4816 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
4818 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#B8");
4819 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
4820 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
4823 if (EventLog.Exists ("monologtemp"))
4824 EventLog.Delete ("monologtemp");
4829 public void WriteEntry6_Log_Empty ()
4831 if (EventLogImplType == NULL_IMPL)
4832 // test cannot pass with NULL implementation
4835 if (EventLog.SourceExists ("monotempsource", "."))
4836 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4838 bool applicationLogExists = EventLog.Exists ("Application", ".");
4840 // specified source does not exist, so use Application log
4842 using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
4843 eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555, 5);
4844 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4845 Assert.AreEqual ("Application", eventLog.Log, "#A2");
4846 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4847 Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
4848 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4849 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4852 if (!applicationLogExists) {
4853 if (EventLog.Exists ("Application"))
4854 EventLog.Delete ("Application");
4856 if (EventLog.SourceExists ("monotempsource", "."))
4857 EventLog.DeleteEventSource ("monotempsource", ".");
4863 public void WriteEntry6_Log_Mismatch ()
4865 if (EventLogImplType == NULL_IMPL)
4866 // test cannot pass with NULL implementation
4869 if (EventLog.SourceExists ("monotempsource", "."))
4870 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4872 if (EventLog.Exists ("monologtemp", "."))
4873 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4875 if (EventLog.Exists ("monologother", "."))
4876 Assert.Ignore ("Event log 'monologother' should not exist.");
4878 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4880 using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
4883 eventLog.WriteEntry ("WriteEntry6_Log_Mismatch1",
4884 EventLogEntryType.Error, 555, 5);
4885 Assert.Fail ("#A1");
4886 } catch (ArgumentException ex) {
4887 // The source 'monotempsource' is not registered in log
4888 // 'monologother' (it is registered in log 'monologtemp').
4889 // The Source and Log properties must be matched, or you may
4890 // set Log to the empty string, and it will automatically be
4891 // matched to the Source property
4892 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
4893 Assert.IsNotNull (ex.Message, "#A3");
4894 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
4895 Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
4896 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
4897 Assert.IsNull (ex.InnerException, "#A7");
4902 eventLog.WriteEntry ("WriteEntry6_Log_Mismatch2",
4903 (EventLogEntryType) 666, 555, 5);
4904 Assert.Fail ("#B1");
4905 } catch (InvalidEnumArgumentException) {
4910 eventLog.WriteEntry ("WriteEntry6_Log_Mismatch3",
4911 EventLogEntryType.Error, -1, 5);
4912 Assert.Fail ("#C1");
4913 } catch (ArgumentException ex) {
4914 // The source 'monotempsource' is not registered in log
4915 // 'monologother' (it is registered in log 'monologtemp').
4916 // The Source and Log properties must be matched, or you may
4917 // set Log to the empty string, and it will automatically be
4918 // matched to the Source property
4919 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
4920 Assert.IsNotNull (ex.Message, "#C3");
4921 Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
4922 Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
4923 Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
4924 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
4925 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
4926 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
4927 Assert.IsNull (ex.InnerException, "#C10");
4931 if (EventLog.Exists ("monologtemp"))
4932 EventLog.Delete ("monologtemp");
4934 if (EventLog.Exists ("monologother"))
4935 EventLog.Delete ("monologother");
4940 public void WriteEntry6_Message_Empty ()
4942 if (EventLogImplType == NULL_IMPL)
4943 // test cannot pass with NULL implementation
4946 if (EventLog.SourceExists ("monotempsource", "."))
4947 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
4949 if (EventLog.Exists ("monologtemp", "."))
4950 Assert.Ignore ("Event log 'monologtemp' should not exist.");
4952 EventLog.CreateEventSource ("monotempsource", "monologtemp");
4954 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
4955 eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888, 6);
4956 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
4957 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
4958 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
4959 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
4960 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
4961 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
4963 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
4964 Assert.IsNotNull (entry, "#B1");
4965 Assert.IsNotNull (entry.Category, "#B2");
4966 Assert.AreEqual ("(6)", entry.Category, "#B3");
4967 Assert.AreEqual (6, entry.CategoryNumber, "#B4");
4968 Assert.IsNotNull (entry.Data, "#B5");
4969 Assert.AreEqual (0, entry.Data.Length, "#B6");
4970 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
4971 Assert.AreEqual (888, entry.EventID, "#B8");
4973 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
4975 Assert.IsNotNull (entry.MachineName, "#B10");
4976 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
4977 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
4978 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
4979 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
4980 Assert.IsNotNull (entry.Source, "#B15");
4981 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
4982 Assert.IsNull (entry.UserName, "#B17");
4985 if (EventLog.Exists ("monologtemp"))
4986 EventLog.Delete ("monologtemp");
4991 public void WriteEntry6_Message_Null ()
4993 if (EventLogImplType == NULL_IMPL)
4994 // test cannot pass with NULL implementation
4997 if (EventLog.SourceExists ("monotempsource", "."))
4998 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5000 if (EventLog.Exists ("monologtemp", "."))
5001 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5003 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5005 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5006 eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343, 8);
5007 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5008 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5009 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5010 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5011 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5012 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5014 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5015 Assert.IsNotNull (entry, "#B1");
5016 Assert.IsNotNull (entry.Category, "#B2");
5017 Assert.AreEqual ("(8)", entry.Category, "#B3");
5018 Assert.AreEqual (8, entry.CategoryNumber, "#B4");
5019 Assert.IsNotNull (entry.Data, "#B5");
5020 Assert.AreEqual (0, entry.Data.Length, "#B6");
5021 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
5022 Assert.AreEqual (343, entry.EventID, "#B8");
5024 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5026 Assert.IsNotNull (entry.MachineName, "#B10");
5027 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5028 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5029 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5030 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
5031 Assert.IsNotNull (entry.Source, "#B15");
5032 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5033 Assert.IsNull (entry.UserName, "#B17");
5036 if (EventLog.Exists ("monologtemp"))
5037 EventLog.Delete ("monologtemp");
5042 public void WriteEntry6_Source_DoesNotExist ()
5044 if (EventLogImplType == NULL_IMPL)
5045 // test cannot pass with NULL implementation
5048 if (EventLog.SourceExists ("monotempsource", "."))
5049 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5051 if (EventLog.SourceExists ("monoothersource", "."))
5052 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
5054 if (EventLog.Exists ("monologtemp", "."))
5055 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5057 EventLog.CreateEventSource ("monoothersource", "monologtemp");
5059 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5060 eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2, 4);
5061 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5062 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5063 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5064 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5065 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5066 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5068 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5069 Assert.IsNotNull (entry, "#B1");
5070 Assert.IsNotNull (entry.Category, "#B2");
5071 Assert.AreEqual ("(4)", entry.Category, "#B3");
5072 Assert.AreEqual (4, entry.CategoryNumber, "#B4");
5073 Assert.IsNotNull (entry.Data, "#B5");
5074 Assert.AreEqual (0, entry.Data.Length, "#B6");
5075 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
5076 Assert.AreEqual (2, entry.EventID, "#B8");
5078 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5080 Assert.IsNotNull (entry.MachineName, "#B10");
5081 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5082 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5083 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5084 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
5085 Assert.IsNotNull (entry.Source, "#B15");
5086 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5087 Assert.IsNull (entry.UserName, "#B17");
5090 if (EventLog.Exists ("monologtemp"))
5091 EventLog.Delete ("monologtemp");
5096 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
5097 public void WriteEntry6_Source_Empty ()
5099 EventLog eventLog = new EventLog ("monologtemp");
5100 eventLog.WriteEntry ("test", EventLogEntryType.Information, 56, 5);
5104 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
5105 public void WriteEntry6_Type_NotDefined ()
5107 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
5108 eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44, 8);
5112 public void WriteEntry7 ()
5114 if (EventLogImplType == NULL_IMPL)
5115 // test cannot pass with NULL implementation
5118 if (EventLog.SourceExists ("monotempsource", "."))
5119 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5121 if (EventLog.Exists ("monologtemp", "."))
5122 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5124 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5126 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5127 EventLog.WriteEntry ("monotempsource", "WriteEntry7a",
5128 EventLogEntryType.Information, 54);
5130 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5131 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5132 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5133 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5134 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5135 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5137 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5138 Assert.IsNotNull (entry, "#B1");
5139 Assert.IsNotNull (entry.Category, "#B2");
5140 Assert.AreEqual ("(0)", entry.Category, "#B3");
5141 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
5142 Assert.IsNotNull (entry.Data, "#B5");
5143 Assert.AreEqual (0, entry.Data.Length, "#B6");
5144 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
5145 Assert.AreEqual (54, entry.EventID, "#B8");
5147 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5149 Assert.IsNotNull (entry.MachineName, "#B10");
5150 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5151 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5152 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5153 Assert.AreEqual ("WriteEntry7a", entry.ReplacementStrings [0], "#B14");
5154 Assert.IsNotNull (entry.Source, "#B15");
5155 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5156 Assert.IsNull (entry.UserName, "#B17");
5158 EventLog.WriteEntry ("monotempsource", "WriteEntry7b"
5159 + Environment.NewLine + "ok", EventLogEntryType.Error, 0);
5161 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5162 Assert.IsNotNull (entry, "#C1");
5163 Assert.IsNotNull (entry.Category, "#C2");
5164 Assert.AreEqual ("(0)", entry.Category, "#C3");
5165 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
5166 Assert.IsNotNull (entry.Data, "#C5");
5167 Assert.AreEqual (0, entry.Data.Length, "#C6");
5168 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
5169 Assert.AreEqual (0, entry.EventID, "#C8");
5171 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
5173 Assert.IsNotNull (entry.MachineName, "#C10");
5174 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
5175 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
5176 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
5177 Assert.AreEqual ("WriteEntry7b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
5178 Assert.IsNotNull (entry.Source, "#C15");
5179 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
5180 Assert.IsNull (entry.UserName, "#C17");
5182 EventLog.WriteEntry ("monotempsource", "WriteEntry7c"
5183 + Environment.NewLine + "ok", EventLogEntryType.Error,
5186 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5187 Assert.IsNotNull (entry, "#D1");
5188 Assert.IsNotNull (entry.Category, "#D2");
5189 Assert.AreEqual ("(0)", entry.Category, "#D3");
5190 Assert.AreEqual (0, entry.CategoryNumber, "#D4");
5191 Assert.IsNotNull (entry.Data, "#D5");
5192 Assert.AreEqual (0, entry.Data.Length, "#D6");
5193 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
5194 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
5196 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
5198 Assert.IsNotNull (entry.MachineName, "#D10");
5199 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
5200 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
5201 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
5202 Assert.AreEqual ("WriteEntry7c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
5203 Assert.IsNotNull (entry.Source, "#D15");
5204 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
5205 Assert.IsNull (entry.UserName, "#D17");
5208 if (EventLog.Exists ("monologtemp"))
5209 EventLog.Delete ("monologtemp");
5214 public void WriteEntry7_EventID_Invalid ()
5216 if (EventLogImplType == NULL_IMPL)
5217 // test cannot pass with NULL implementation
5220 if (EventLog.SourceExists ("monotempsource", "."))
5221 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5223 bool applicationLogExists = EventLog.Exists ("Application", ".");
5225 EventLog.WriteEntry ("monotempsource", "test",
5226 EventLogEntryType.Information, -1);
5227 Assert.Fail ("#A1");
5228 } catch (ArgumentException ex) {
5229 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
5230 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
5231 Assert.IsNotNull (ex.Message, "#A3");
5232 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
5233 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
5234 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
5235 Assert.IsNull (ex.InnerException, "#A7");
5237 if (!applicationLogExists)
5238 Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
5239 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
5240 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
5242 Assert.IsTrue (EventLog.Exists ("Application"), "#A8");
5243 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
5244 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
5247 if (!applicationLogExists) {
5248 if (EventLog.Exists ("Application", "."))
5249 EventLog.Delete ("Application", ".");
5251 if (EventLog.SourceExists ("monotempsource", "."))
5252 EventLog.DeleteEventSource ("monotempsource", ".");
5257 EventLog.WriteEntry ("monotempsource", "test",
5258 EventLogEntryType.Information, 65536);
5259 Assert.Fail ("#B1");
5260 } catch (ArgumentException ex) {
5261 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
5262 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
5263 Assert.IsNotNull (ex.Message, "#B3");
5264 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
5265 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
5266 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
5267 Assert.IsNull (ex.InnerException, "#B7");
5269 if (!applicationLogExists)
5270 Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
5271 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
5272 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
5274 Assert.IsTrue (EventLog.Exists ("Application"), "#B8");
5275 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
5276 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
5279 if (!applicationLogExists) {
5280 if (EventLog.Exists ("Application", "."))
5281 EventLog.Delete ("Application", ".");
5283 if (EventLog.SourceExists ("monotempsource", "."))
5284 EventLog.DeleteEventSource ("monotempsource", ".");
5290 public void WriteEntry7_Message_Empty ()
5292 if (EventLogImplType == NULL_IMPL)
5293 // test cannot pass with NULL implementation
5296 if (EventLog.SourceExists ("monotempsource", "."))
5297 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5299 if (EventLog.Exists ("monologtemp", "."))
5300 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5302 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5304 EventLog.WriteEntry ("monotempsource", string.Empty,
5305 EventLogEntryType.Error, 56);
5307 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5308 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5309 Assert.IsNotNull (entry, "#A1");
5310 Assert.IsNotNull (entry.Category, "#A2");
5311 Assert.AreEqual ("(0)", entry.Category, "#A3");
5312 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
5313 Assert.IsNotNull (entry.Data, "#A5");
5314 Assert.AreEqual (0, entry.Data.Length, "#A6");
5315 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
5316 Assert.AreEqual (56, entry.EventID, "#A8");
5318 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
5320 Assert.IsNotNull (entry.MachineName, "#A10");
5321 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
5322 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
5323 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
5324 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
5325 Assert.IsNotNull (entry.Source, "#A15");
5326 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
5327 Assert.IsNull (entry.UserName, "#A17");
5330 if (EventLog.Exists ("monologtemp"))
5331 EventLog.Delete ("monologtemp");
5336 public void WriteEntry7_Message_Null ()
5338 if (EventLogImplType == NULL_IMPL)
5339 // test cannot pass with NULL implementation
5342 if (EventLog.SourceExists ("monotempsource", "."))
5343 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5345 if (EventLog.Exists ("monologtemp", "."))
5346 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5348 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5350 EventLog.WriteEntry ("monotempsource", null,
5351 EventLogEntryType.FailureAudit, 76);
5353 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5354 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5355 Assert.IsNotNull (entry, "#A1");
5356 Assert.IsNotNull (entry.Category, "#A2");
5357 Assert.AreEqual ("(0)", entry.Category, "#A3");
5358 Assert.AreEqual (0, entry.CategoryNumber, "#A4");
5359 Assert.IsNotNull (entry.Data, "#A5");
5360 Assert.AreEqual (0, entry.Data.Length, "#A6");
5361 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
5362 Assert.AreEqual (76, entry.EventID, "#A8");
5364 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
5366 Assert.IsNotNull (entry.MachineName, "#A10");
5367 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
5368 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
5369 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
5370 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
5371 Assert.IsNotNull (entry.Source, "#A15");
5372 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
5373 Assert.IsNull (entry.UserName, "#A17");
5376 if (EventLog.Exists ("monologtemp"))
5377 EventLog.Delete ("monologtemp");
5382 public void WriteEntry7_Source_DoesNotExist ()
5384 if (EventLogImplType == NULL_IMPL)
5385 // test cannot pass with NULL implementation
5388 if (EventLog.SourceExists ("monotempsource", "."))
5389 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5391 bool applicationLogExists = EventLog.Exists ("Application");
5393 EventLog.WriteEntry ("monotempsource", "test",
5394 EventLogEntryType.SuccessAudit, 89);
5396 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
5397 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
5398 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
5400 if (EventLogImplType == WIN32_IMPL)
5401 // win32 API does not return entries in order for
5405 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
5406 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5407 Assert.IsNotNull (entry, "#B1");
5408 Assert.IsNotNull (entry.Category, "#B2");
5409 Assert.AreEqual ("(0)", entry.Category, "#B3");
5410 Assert.AreEqual (0, entry.CategoryNumber, "#B4");
5411 Assert.IsNotNull (entry.Data, "#B5");
5412 Assert.AreEqual (0, entry.Data.Length, "#B6");
5413 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
5414 Assert.AreEqual (89, entry.EventID, "#B8");
5416 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5418 Assert.IsNotNull (entry.MachineName, "#B10");
5419 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5420 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5421 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5422 Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
5423 Assert.IsNotNull (entry.Source, "#B15");
5424 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5425 Assert.IsNull (entry.UserName, "#B17");
5428 if (!applicationLogExists) {
5429 if (EventLog.Exists ("Application"))
5430 EventLog.Delete ("Application");
5432 if (EventLog.SourceExists ("monotempsource", "."))
5433 EventLog.DeleteEventSource ("monotempsource", ".");
5439 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
5440 public void WriteEntry7_Source_Empty ()
5442 EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning, 5);
5446 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
5447 public void WriteEntry7_Source_Null ()
5449 EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5);
5453 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
5454 public void WriteEntry7_Type_NotDefined ()
5456 EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666, 4);
5460 public void WriteEntry8 ()
5462 if (EventLogImplType == NULL_IMPL)
5463 // test cannot pass with NULL implementation
5466 if (EventLog.SourceExists ("monotempsource", "."))
5467 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5469 if (EventLog.Exists ("monologtemp", "."))
5470 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5472 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5474 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5475 byte [] data = new byte [] { 56, 55, 23, 24 };
5477 eventLog.WriteEntry ("WriteEntry8a", EventLogEntryType.Information, 56, 3, data);
5479 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5480 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5481 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5482 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5483 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5484 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5486 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5487 Assert.IsNotNull (entry, "#B1");
5488 Assert.IsNotNull (entry.Category, "#B2");
5489 Assert.AreEqual ("(3)", entry.Category, "#B3");
5490 Assert.AreEqual (3, entry.CategoryNumber, "#B4");
5491 Assert.IsNotNull (entry.Data, "#B5");
5492 Assert.AreEqual (data, entry.Data, "#B6");
5493 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
5494 Assert.AreEqual (56, entry.EventID, "#B8");
5496 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5498 Assert.IsNotNull (entry.MachineName, "#B10");
5499 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5500 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5501 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5502 Assert.AreEqual ("WriteEntry8a", entry.ReplacementStrings [0], "#B14");
5503 Assert.IsNotNull (entry.Source, "#B15");
5504 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5505 Assert.IsNull (entry.UserName, "#B17");
5507 eventLog.WriteEntry ("WriteEntry8b" + Environment.NewLine + "ok",
5508 EventLogEntryType.Error, 0, 0, new byte [0]);
5510 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5511 Assert.IsNotNull (entry, "#C1");
5512 Assert.IsNotNull (entry.Category, "#C2");
5513 Assert.AreEqual ("(0)", entry.Category, "#C3");
5514 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
5515 Assert.IsNotNull (entry.Data, "#C5");
5516 Assert.AreEqual (0, entry.Data.Length, "#C6");
5517 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
5518 Assert.AreEqual (0, entry.EventID, "#C8");
5520 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
5522 Assert.IsNotNull (entry.MachineName, "#C10");
5523 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
5524 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
5525 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
5526 Assert.AreEqual ("WriteEntry8b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
5527 Assert.IsNotNull (entry.Source, "#C15");
5528 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
5529 Assert.IsNull (entry.UserName, "#C17");
5531 eventLog.WriteEntry ("WriteEntry8c", EventLogEntryType.Error,
5532 ushort.MaxValue, short.MaxValue, null);
5534 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5535 Assert.IsNotNull (entry, "#D1");
5536 Assert.IsNotNull (entry.Category, "#D2");
5537 Assert.AreEqual ("(32767)", entry.Category, "#D3");
5538 Assert.AreEqual (short.MaxValue, entry.CategoryNumber, "#D4");
5539 Assert.IsNotNull (entry.Data, "#D5");
5540 Assert.AreEqual (0, entry.Data.Length, "#D6");
5541 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
5542 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
5544 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
5546 Assert.IsNotNull (entry.MachineName, "#D10");
5547 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
5548 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
5549 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
5550 Assert.AreEqual ("WriteEntry8c", entry.ReplacementStrings [0], "#D14");
5551 Assert.IsNotNull (entry.Source, "#D15");
5552 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
5553 Assert.IsNull (entry.UserName, "#D17");
5556 if (EventLog.Exists ("monologtemp"))
5557 EventLog.Delete ("monologtemp");
5562 public void WriteEntry8_EventID_Invalid ()
5564 if (EventLogImplType == NULL_IMPL)
5565 // test cannot pass with NULL implementation
5568 if (EventLog.SourceExists ("monotempsource", "."))
5569 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5571 if (EventLog.Exists ("monologtemp", "."))
5572 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5574 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
5577 eventLog.WriteEntry ("test", EventLogEntryType.Information, -1,
5579 Assert.Fail ("#A1");
5580 } catch (ArgumentException ex) {
5581 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
5582 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
5583 Assert.IsNotNull (ex.Message, "#A3");
5584 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
5585 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
5586 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
5587 Assert.IsNull (ex.InnerException, "#A7");
5589 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#A8");
5590 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
5591 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
5593 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A8");
5594 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
5595 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
5598 if (EventLog.Exists ("monologtemp"))
5599 EventLog.Delete ("monologtemp");
5603 eventLog.WriteEntry ("test", EventLogEntryType.Information, 65536,
5605 Assert.Fail ("#B1");
5606 } catch (ArgumentException ex) {
5607 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
5608 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
5609 Assert.IsNotNull (ex.Message, "#B3");
5610 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
5611 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
5612 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
5613 Assert.IsNull (ex.InnerException, "#B7");
5615 Assert.IsFalse (EventLog.Exists ("monologtemp"), "#B8");
5616 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
5617 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
5619 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#B8");
5620 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
5621 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
5624 if (EventLog.Exists ("monologtemp"))
5625 EventLog.Delete ("monologtemp");
5630 public void WriteEntry8_Log_Empty ()
5632 if (EventLogImplType == NULL_IMPL)
5633 // test cannot pass with NULL implementation
5636 if (EventLog.SourceExists ("monotempsource", "."))
5637 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5639 bool applicationLogExists = EventLog.Exists ("Application", ".");
5641 // specified source does not exist, so use Application log
5643 using (EventLog eventLog = new EventLog (string.Empty, ".", "monotempsource")) {
5644 eventLog.WriteEntry ("WriteEntry1_Log_Empty", EventLogEntryType.Error, 555, 5, new byte [0]);
5645 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5646 Assert.AreEqual ("Application", eventLog.Log, "#A2");
5647 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5648 Assert.IsTrue (EventLog.Exists ("Application"), "#A4");
5649 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5650 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5653 if (!applicationLogExists) {
5654 if (EventLog.Exists ("Application"))
5655 EventLog.Delete ("Application");
5657 if (EventLog.SourceExists ("monotempsource", "."))
5658 EventLog.DeleteEventSource ("monotempsource", ".");
5664 public void WriteEntry8_Log_Mismatch ()
5666 if (EventLogImplType == NULL_IMPL)
5667 // test cannot pass with NULL implementation
5670 if (EventLog.SourceExists ("monotempsource", "."))
5671 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5673 if (EventLog.Exists ("monologtemp", "."))
5674 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5676 if (EventLog.Exists ("monologother", "."))
5677 Assert.Ignore ("Event log 'monologother' should not exist.");
5679 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5681 using (EventLog eventLog = new EventLog ("monologother", ".", "monotempsource")) {
5684 eventLog.WriteEntry ("WriteEntry8_Log_Mismatch1",
5685 EventLogEntryType.Error, 555, 5, new byte [0]);
5686 Assert.Fail ("#A1");
5687 } catch (ArgumentException ex) {
5688 // The source 'monotempsource' is not registered in log
5689 // 'monologother' (it is registered in log 'monologtemp').
5690 // The Source and Log properties must be matched, or you may
5691 // set Log to the empty string, and it will automatically be
5692 // matched to the Source property
5693 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
5694 Assert.IsNotNull (ex.Message, "#A3");
5695 Assert.IsTrue (ex.Message.IndexOf ("'monotempsource'") != -1, "#A4");
5696 Assert.IsTrue (ex.Message.IndexOf ("'monologother'") != -1, "#A5");
5697 Assert.IsTrue (ex.Message.IndexOf ("'monologtemp'") != -1, "#A6");
5698 Assert.IsNull (ex.InnerException, "#A7");
5703 eventLog.WriteEntry ("WriteEntry8_Log_Mismatch2",
5704 (EventLogEntryType) 666, 555, 5, new byte [0]);
5705 Assert.Fail ("#B1");
5706 } catch (InvalidEnumArgumentException) {
5711 eventLog.WriteEntry ("WriteEntry8_Log_Mismatch3",
5712 EventLogEntryType.Error, -1, 5, new byte [0]);
5713 Assert.Fail ("#C1");
5714 } catch (ArgumentException ex) {
5715 // The source 'monotempsource' is not registered in log
5716 // 'monologother' (it is registered in log 'monologtemp').
5717 // The Source and Log properties must be matched, or you may
5718 // set Log to the empty string, and it will automatically be
5719 // matched to the Source property
5720 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
5721 Assert.IsNotNull (ex.Message, "#C3");
5722 Assert.IsFalse (ex.Message.IndexOf ("'monotempsource'") != -1, "#C4");
5723 Assert.IsFalse (ex.Message.IndexOf ("'monologother'") != -1, "#C5");
5724 Assert.IsFalse (ex.Message.IndexOf ("'monologtemp'") != -1, "#C6");
5725 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#C7");
5726 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#C8");
5727 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#C9");
5728 Assert.IsNull (ex.InnerException, "#C10");
5732 if (EventLog.Exists ("monologtemp"))
5733 EventLog.Delete ("monologtemp");
5735 if (EventLog.Exists ("monologother"))
5736 EventLog.Delete ("monologother");
5741 public void WriteEntry8_Message_Empty ()
5743 if (EventLogImplType == NULL_IMPL)
5744 // test cannot pass with NULL implementation
5747 if (EventLog.SourceExists ("monotempsource", "."))
5748 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5750 if (EventLog.Exists ("monologtemp", "."))
5751 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5753 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5755 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5756 eventLog.WriteEntry (string.Empty, EventLogEntryType.FailureAudit, 888, 6, new byte [0]);
5757 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5758 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5759 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5760 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5761 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5762 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5764 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5765 Assert.IsNotNull (entry, "#B1");
5766 Assert.IsNotNull (entry.Category, "#B2");
5767 Assert.AreEqual ("(6)", entry.Category, "#B3");
5768 Assert.AreEqual (6, entry.CategoryNumber, "#B4");
5769 Assert.IsNotNull (entry.Data, "#B5");
5770 Assert.AreEqual (0, entry.Data.Length, "#B6");
5771 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
5772 Assert.AreEqual (888, entry.EventID, "#B8");
5774 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5776 Assert.IsNotNull (entry.MachineName, "#B10");
5777 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5778 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5779 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5780 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
5781 Assert.IsNotNull (entry.Source, "#B15");
5782 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5783 Assert.IsNull (entry.UserName, "#B17");
5786 if (EventLog.Exists ("monologtemp"))
5787 EventLog.Delete ("monologtemp");
5792 public void WriteEntry8_Message_Null ()
5794 if (EventLogImplType == NULL_IMPL)
5795 // test cannot pass with NULL implementation
5798 if (EventLog.SourceExists ("monotempsource", "."))
5799 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5801 if (EventLog.Exists ("monologtemp", "."))
5802 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5804 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5806 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5807 eventLog.WriteEntry (null, EventLogEntryType.SuccessAudit, 343, 8, new byte [0]);
5808 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5809 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5810 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5811 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5812 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5813 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5815 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5816 Assert.IsNotNull (entry, "#B1");
5817 Assert.IsNotNull (entry.Category, "#B2");
5818 Assert.AreEqual ("(8)", entry.Category, "#B3");
5819 Assert.AreEqual (8, entry.CategoryNumber, "#B4");
5820 Assert.IsNotNull (entry.Data, "#B5");
5821 Assert.AreEqual (0, entry.Data.Length, "#B6");
5822 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
5823 Assert.AreEqual (343, entry.EventID, "#B8");
5825 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5827 Assert.IsNotNull (entry.MachineName, "#B10");
5828 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5829 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5830 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5831 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
5832 Assert.IsNotNull (entry.Source, "#B15");
5833 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5834 Assert.IsNull (entry.UserName, "#B17");
5837 if (EventLog.Exists ("monologtemp"))
5838 EventLog.Delete ("monologtemp");
5843 public void WriteEntry8_Source_DoesNotExist ()
5845 if (EventLogImplType == NULL_IMPL)
5846 // test cannot pass with NULL implementation
5849 if (EventLog.SourceExists ("monotempsource", "."))
5850 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5852 if (EventLog.SourceExists ("monoothersource", "."))
5853 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
5855 if (EventLog.Exists ("monologtemp", "."))
5856 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5858 EventLog.CreateEventSource ("monoothersource", "monologtemp");
5860 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5861 eventLog.WriteEntry ("WriteEntry1", EventLogEntryType.Warning, 2, 4, new byte [0]);
5862 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5863 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5864 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5865 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5866 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5867 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5869 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5870 Assert.IsNotNull (entry, "#B1");
5871 Assert.IsNotNull (entry.Category, "#B2");
5872 Assert.AreEqual ("(4)", entry.Category, "#B3");
5873 Assert.AreEqual (4, entry.CategoryNumber, "#B4");
5874 Assert.IsNotNull (entry.Data, "#B5");
5875 Assert.AreEqual (0, entry.Data.Length, "#B6");
5876 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
5877 Assert.AreEqual (2, entry.EventID, "#B8");
5879 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5881 Assert.IsNotNull (entry.MachineName, "#B10");
5882 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5883 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5884 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5885 Assert.AreEqual ("WriteEntry1", entry.ReplacementStrings [0], "#B14");
5886 Assert.IsNotNull (entry.Source, "#B15");
5887 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5888 Assert.IsNull (entry.UserName, "#B17");
5891 if (EventLog.Exists ("monologtemp"))
5892 EventLog.Delete ("monologtemp");
5897 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
5898 public void WriteEntry8_Source_Empty ()
5900 EventLog eventLog = new EventLog ("monologtemp");
5901 eventLog.WriteEntry ("test", EventLogEntryType.Information, 56, 5, new byte [0]);
5905 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
5906 public void WriteEntry8_Type_NotDefined ()
5908 EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource");
5909 eventLog.WriteEntry ("test", (EventLogEntryType) 666, 44, 8, new byte [0]);
5913 public void WriteEntry9 ()
5915 if (EventLogImplType == NULL_IMPL)
5916 // test cannot pass with NULL implementation
5919 if (EventLog.SourceExists ("monotempsource", "."))
5920 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
5922 if (EventLog.Exists ("monologtemp", "."))
5923 Assert.Ignore ("Event log 'monologtemp' should not exist.");
5925 EventLog.CreateEventSource ("monotempsource", "monologtemp");
5927 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
5928 EventLog.WriteEntry ("monotempsource", "WriteEntry9a",
5929 EventLogEntryType.Information, 54, 5);
5931 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
5932 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
5933 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
5934 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
5935 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
5936 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
5938 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
5939 Assert.IsNotNull (entry, "#B1");
5940 Assert.IsNotNull (entry.Category, "#B2");
5941 Assert.AreEqual ("(5)", entry.Category, "#B3");
5942 Assert.AreEqual (5, entry.CategoryNumber, "#B4");
5943 Assert.IsNotNull (entry.Data, "#B5");
5944 Assert.AreEqual (0, entry.Data.Length, "#B6");
5945 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
5946 Assert.AreEqual (54, entry.EventID, "#B8");
5948 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
5950 Assert.IsNotNull (entry.MachineName, "#B10");
5951 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
5952 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
5953 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
5954 Assert.AreEqual ("WriteEntry9a", entry.ReplacementStrings [0], "#B14");
5955 Assert.IsNotNull (entry.Source, "#B15");
5956 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
5957 Assert.IsNull (entry.UserName, "#B17");
5959 EventLog.WriteEntry ("monotempsource", "WriteEntry9b"
5960 + Environment.NewLine + "ok", EventLogEntryType.Error,
5963 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5964 Assert.IsNotNull (entry, "#C1");
5965 Assert.IsNotNull (entry.Category, "#C2");
5966 Assert.AreEqual ("(0)", entry.Category, "#C3");
5967 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
5968 Assert.IsNotNull (entry.Data, "#C5");
5969 Assert.AreEqual (0, entry.Data.Length, "#C6");
5970 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
5971 Assert.AreEqual (0, entry.EventID, "#C8");
5973 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
5975 Assert.IsNotNull (entry.MachineName, "#C10");
5976 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
5977 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
5978 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
5979 Assert.AreEqual ("WriteEntry9b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
5980 Assert.IsNotNull (entry.Source, "#C15");
5981 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
5982 Assert.IsNull (entry.UserName, "#C17");
5984 EventLog.WriteEntry ("monotempsource", "WriteEntry9c"
5985 + Environment.NewLine + "ok", EventLogEntryType.Error,
5986 ushort.MaxValue, short.MaxValue);
5988 entry = eventLog.Entries [eventLog.Entries.Count - 1];
5989 Assert.IsNotNull (entry, "#D1");
5990 Assert.IsNotNull (entry.Category, "#D2");
5991 Assert.AreEqual ("(32767)", entry.Category, "#D3");
5992 Assert.AreEqual (32767, entry.CategoryNumber, "#D4");
5993 Assert.IsNotNull (entry.Data, "#D5");
5994 Assert.AreEqual (0, entry.Data.Length, "#D6");
5995 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
5996 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
5998 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
6000 Assert.IsNotNull (entry.MachineName, "#D10");
6001 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
6002 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
6003 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
6004 Assert.AreEqual ("WriteEntry9c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
6005 Assert.IsNotNull (entry.Source, "#D15");
6006 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
6007 Assert.IsNull (entry.UserName, "#D17");
6010 if (EventLog.Exists ("monologtemp"))
6011 EventLog.Delete ("monologtemp");
6016 public void WriteEntry9_EventID_Invalid ()
6018 if (EventLogImplType == NULL_IMPL)
6019 // test cannot pass with NULL implementation
6022 if (EventLog.SourceExists ("monotempsource", "."))
6023 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6025 bool applicationLogExists = EventLog.Exists ("Application", ".");
6027 EventLog.WriteEntry ("monotempsource", "test",
6028 EventLogEntryType.Information, -1, 5);
6029 Assert.Fail ("#A1");
6030 } catch (ArgumentException ex) {
6031 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
6032 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
6033 Assert.IsNotNull (ex.Message, "#A3");
6034 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
6035 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
6036 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
6037 Assert.IsNull (ex.InnerException, "#A7");
6039 if (!applicationLogExists)
6040 Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
6041 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
6042 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
6044 Assert.IsTrue (EventLog.Exists ("Application"), "#A8");
6045 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
6046 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
6049 if (!applicationLogExists) {
6050 if (EventLog.Exists ("Application", "."))
6051 EventLog.Delete ("Application", ".");
6053 if (EventLog.SourceExists ("monotempsource", "."))
6054 EventLog.DeleteEventSource ("monotempsource", ".");
6059 EventLog.WriteEntry ("monotempsource", "test",
6060 EventLogEntryType.Information, 65536, 5);
6061 Assert.Fail ("#B1");
6062 } catch (ArgumentException ex) {
6063 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
6064 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
6065 Assert.IsNotNull (ex.Message, "#B3");
6066 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
6067 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
6068 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
6069 Assert.IsNull (ex.InnerException, "#B7");
6071 if (!applicationLogExists)
6072 Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
6073 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
6074 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
6076 Assert.IsTrue (EventLog.Exists ("Application"), "#B8");
6077 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
6078 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
6081 if (!applicationLogExists) {
6082 if (EventLog.Exists ("Application", "."))
6083 EventLog.Delete ("Application", ".");
6085 if (EventLog.SourceExists ("monotempsource", "."))
6086 EventLog.DeleteEventSource ("monotempsource", ".");
6092 public void WriteEntry9_Message_Empty ()
6094 if (EventLogImplType == NULL_IMPL)
6095 // test cannot pass with NULL implementation
6098 if (EventLog.SourceExists ("monotempsource", "."))
6099 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6101 if (EventLog.Exists ("monologtemp", "."))
6102 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6104 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6106 EventLog.WriteEntry ("monotempsource", string.Empty,
6107 EventLogEntryType.Error, 56, 5);
6109 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6110 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6111 Assert.IsNotNull (entry, "#A1");
6112 Assert.IsNotNull (entry.Category, "#A2");
6113 Assert.AreEqual ("(5)", entry.Category, "#A3");
6114 Assert.AreEqual (5, entry.CategoryNumber, "#A4");
6115 Assert.IsNotNull (entry.Data, "#A5");
6116 Assert.AreEqual (0, entry.Data.Length, "#A6");
6117 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
6118 Assert.AreEqual (56, entry.EventID, "#A8");
6120 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
6122 Assert.IsNotNull (entry.MachineName, "#A10");
6123 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
6124 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
6125 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
6126 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
6127 Assert.IsNotNull (entry.Source, "#A15");
6128 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
6129 Assert.IsNull (entry.UserName, "#A17");
6132 if (EventLog.Exists ("monologtemp"))
6133 EventLog.Delete ("monologtemp");
6138 public void WriteEntry9_Message_Null ()
6140 if (EventLogImplType == NULL_IMPL)
6141 // test cannot pass with NULL implementation
6144 if (EventLog.SourceExists ("monotempsource", "."))
6145 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6147 if (EventLog.Exists ("monologtemp", "."))
6148 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6150 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6152 EventLog.WriteEntry ("monotempsource", null,
6153 EventLogEntryType.FailureAudit, 76, 8);
6155 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6156 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6157 Assert.IsNotNull (entry, "#A1");
6158 Assert.IsNotNull (entry.Category, "#A2");
6159 Assert.AreEqual ("(8)", entry.Category, "#A3");
6160 Assert.AreEqual (8, entry.CategoryNumber, "#A4");
6161 Assert.IsNotNull (entry.Data, "#A5");
6162 Assert.AreEqual (0, entry.Data.Length, "#A6");
6163 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
6164 Assert.AreEqual (76, entry.EventID, "#A8");
6166 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
6168 Assert.IsNotNull (entry.MachineName, "#A10");
6169 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
6170 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
6171 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
6172 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
6173 Assert.IsNotNull (entry.Source, "#A15");
6174 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
6175 Assert.IsNull (entry.UserName, "#A17");
6178 if (EventLog.Exists ("monologtemp"))
6179 EventLog.Delete ("monologtemp");
6184 public void WriteEntry9_Source_DoesNotExist ()
6186 if (EventLogImplType == NULL_IMPL)
6187 // test cannot pass with NULL implementation
6190 if (EventLog.SourceExists ("monotempsource", "."))
6191 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6193 bool applicationLogExists = EventLog.Exists ("Application");
6195 EventLog.WriteEntry ("monotempsource", "test",
6196 EventLogEntryType.SuccessAudit, 89, 3);
6198 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
6199 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
6200 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
6202 if (EventLogImplType == WIN32_IMPL)
6203 // win32 API does not return entries in order for
6207 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
6208 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6209 Assert.IsNotNull (entry, "#B1");
6210 Assert.IsNotNull (entry.Category, "#B2");
6211 Assert.AreEqual ("(3)", entry.Category, "#B3");
6212 Assert.AreEqual (3, entry.CategoryNumber, "#B4");
6213 Assert.IsNotNull (entry.Data, "#B5");
6214 Assert.AreEqual (0, entry.Data.Length, "#B6");
6215 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
6216 Assert.AreEqual (89, entry.EventID, "#B8");
6218 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6220 Assert.IsNotNull (entry.MachineName, "#B10");
6221 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6222 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6223 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
6224 Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
6225 Assert.IsNotNull (entry.Source, "#B15");
6226 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
6227 Assert.IsNull (entry.UserName, "#B17");
6230 if (!applicationLogExists) {
6231 if (EventLog.Exists ("Application"))
6232 EventLog.Delete ("Application");
6234 if (EventLog.SourceExists ("monotempsource", "."))
6235 EventLog.DeleteEventSource ("monotempsource", ".");
6241 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6242 public void WriteEntry9_Source_Empty ()
6244 EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning,
6249 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6250 public void WriteEntry9_Source_Null ()
6252 EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5, 4);
6256 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
6257 public void WriteEntry9_Type_NotDefined ()
6259 EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666, 4, 3);
6263 public void WriteEntry10 ()
6265 if (EventLogImplType == NULL_IMPL)
6266 // test cannot pass with NULL implementation
6269 if (EventLog.SourceExists ("monotempsource", "."))
6270 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6272 if (EventLog.Exists ("monologtemp", "."))
6273 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6275 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6277 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6278 byte [] data = new byte [] { 56, 55, 23, 24 };
6280 EventLog.WriteEntry ("monotempsource", "WriteEntry9a",
6281 EventLogEntryType.Information, 54, 5, data);
6283 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6284 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6285 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6286 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6287 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6288 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
6290 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6291 Assert.IsNotNull (entry, "#B1");
6292 Assert.IsNotNull (entry.Category, "#B2");
6293 Assert.AreEqual ("(5)", entry.Category, "#B3");
6294 Assert.AreEqual (5, entry.CategoryNumber, "#B4");
6295 Assert.IsNotNull (entry.Data, "#B5");
6296 Assert.AreEqual (data, entry.Data, "#B6");
6297 Assert.AreEqual (EventLogEntryType.Information, entry.EntryType, "#B7");
6298 Assert.AreEqual (54, entry.EventID, "#B8");
6300 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6302 Assert.IsNotNull (entry.MachineName, "#B10");
6303 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6304 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6305 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
6306 Assert.AreEqual ("WriteEntry9a", entry.ReplacementStrings [0], "#B14");
6307 Assert.IsNotNull (entry.Source, "#B15");
6308 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
6309 Assert.IsNull (entry.UserName, "#B17");
6311 EventLog.WriteEntry ("monotempsource", "WriteEntry9b"
6312 + Environment.NewLine + "ok", EventLogEntryType.Error,
6313 0, 0, new byte [0]);
6315 entry = eventLog.Entries [eventLog.Entries.Count - 1];
6316 Assert.IsNotNull (entry, "#C1");
6317 Assert.IsNotNull (entry.Category, "#C2");
6318 Assert.AreEqual ("(0)", entry.Category, "#C3");
6319 Assert.AreEqual (0, entry.CategoryNumber, "#C4");
6320 Assert.IsNotNull (entry.Data, "#C5");
6321 Assert.AreEqual (0, entry.Data.Length, "#C6");
6322 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#C7");
6323 Assert.AreEqual (0, entry.EventID, "#C8");
6325 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
6327 Assert.IsNotNull (entry.MachineName, "#C10");
6328 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
6329 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
6330 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#C13");
6331 Assert.AreEqual ("WriteEntry9b" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#C14");
6332 Assert.IsNotNull (entry.Source, "#C15");
6333 Assert.AreEqual ("monotempsource", entry.Source, "#C16");
6334 Assert.IsNull (entry.UserName, "#C17");
6336 EventLog.WriteEntry ("monotempsource", "WriteEntry9c"
6337 + Environment.NewLine + "ok", EventLogEntryType.Error,
6338 ushort.MaxValue, short.MaxValue, null);
6340 entry = eventLog.Entries [eventLog.Entries.Count - 1];
6341 Assert.IsNotNull (entry, "#D1");
6342 Assert.IsNotNull (entry.Category, "#D2");
6343 Assert.AreEqual ("(32767)", entry.Category, "#D3");
6344 Assert.AreEqual (32767, entry.CategoryNumber, "#D4");
6345 Assert.IsNotNull (entry.Data, "#D5");
6346 Assert.AreEqual (0, entry.Data.Length, "#D6");
6347 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#D7");
6348 Assert.AreEqual (ushort.MaxValue, entry.EventID, "#D8");
6350 Assert.AreEqual (entry.EventID, entry.InstanceId, "#D9");
6352 Assert.IsNotNull (entry.MachineName, "#D10");
6353 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#D11");
6354 Assert.IsNotNull (entry.ReplacementStrings, "#D12");
6355 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#D13");
6356 Assert.AreEqual ("WriteEntry9c" + Environment.NewLine + "ok", entry.ReplacementStrings [0], "#D14");
6357 Assert.IsNotNull (entry.Source, "#D15");
6358 Assert.AreEqual ("monotempsource", entry.Source, "#D16");
6359 Assert.IsNull (entry.UserName, "#D17");
6362 if (EventLog.Exists ("monologtemp"))
6363 EventLog.Delete ("monologtemp");
6368 public void WriteEntry10_EventID_Invalid ()
6370 if (EventLogImplType == NULL_IMPL)
6371 // test cannot pass with NULL implementation
6374 if (EventLog.SourceExists ("monotempsource", "."))
6375 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6377 bool applicationLogExists = EventLog.Exists ("Application", ".");
6379 EventLog.WriteEntry ("monotempsource", "test",
6380 EventLogEntryType.Information, -1, 5, new byte[0]);
6381 Assert.Fail ("#A1");
6382 } catch (ArgumentException ex) {
6383 // Invalid eventID value '-1'. It must be in the range between '0' and '65535'.
6384 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
6385 Assert.IsNotNull (ex.Message, "#A3");
6386 Assert.IsTrue (ex.Message.IndexOf ("'-1'") != -1, "#A4");
6387 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#A5");
6388 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#A6");
6389 Assert.IsNull (ex.InnerException, "#A7");
6391 if (!applicationLogExists)
6392 Assert.IsFalse (EventLog.Exists ("Application"), "#A8");
6393 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#A9");
6394 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
6396 Assert.IsTrue (EventLog.Exists ("Application"), "#A8");
6397 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A9");
6398 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A10");
6401 if (!applicationLogExists) {
6402 if (EventLog.Exists ("Application", "."))
6403 EventLog.Delete ("Application", ".");
6405 if (EventLog.SourceExists ("monotempsource", "."))
6406 EventLog.DeleteEventSource ("monotempsource", ".");
6411 EventLog.WriteEntry ("monotempsource", "test",
6412 EventLogEntryType.Information, 65536, 5, new byte[0]);
6413 Assert.Fail ("#B1");
6414 } catch (ArgumentException ex) {
6415 // Invalid eventID value '65536'. It must be in the range between '0' and '65535'.
6416 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
6417 Assert.IsNotNull (ex.Message, "#B3");
6418 Assert.IsTrue (ex.Message.IndexOf ("'65536'") != -1, "#B4");
6419 Assert.IsTrue (ex.Message.IndexOf ("'0'") != -1, "#B5");
6420 Assert.IsTrue (ex.Message.IndexOf ("'65535'") != -1, "#B6");
6421 Assert.IsNull (ex.InnerException, "#B7");
6423 if (!applicationLogExists)
6424 Assert.IsFalse (EventLog.Exists ("Application"), "#B8");
6425 Assert.IsFalse (EventLog.SourceExists ("monotempsource"), "#B9");
6426 Assert.AreEqual (string.Empty, EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
6428 Assert.IsTrue (EventLog.Exists ("Application"), "#B8");
6429 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#B9");
6430 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#B10");
6433 if (!applicationLogExists) {
6434 if (EventLog.Exists ("Application", "."))
6435 EventLog.Delete ("Application", ".");
6437 if (EventLog.SourceExists ("monotempsource", "."))
6438 EventLog.DeleteEventSource ("monotempsource", ".");
6444 public void WriteEntry10_Message_Empty ()
6446 if (EventLogImplType == NULL_IMPL)
6447 // test cannot pass with NULL implementation
6450 if (EventLog.SourceExists ("monotempsource", "."))
6451 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6453 if (EventLog.Exists ("monologtemp", "."))
6454 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6456 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6458 EventLog.WriteEntry ("monotempsource", string.Empty,
6459 EventLogEntryType.Error, 56, 5, new byte [0]);
6461 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6462 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6463 Assert.IsNotNull (entry, "#A1");
6464 Assert.IsNotNull (entry.Category, "#A2");
6465 Assert.AreEqual ("(5)", entry.Category, "#A3");
6466 Assert.AreEqual (5, entry.CategoryNumber, "#A4");
6467 Assert.IsNotNull (entry.Data, "#A5");
6468 Assert.AreEqual (0, entry.Data.Length, "#A6");
6469 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#A7");
6470 Assert.AreEqual (56, entry.EventID, "#A8");
6472 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
6474 Assert.IsNotNull (entry.MachineName, "#A10");
6475 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
6476 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
6477 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
6478 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
6479 Assert.IsNotNull (entry.Source, "#A15");
6480 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
6481 Assert.IsNull (entry.UserName, "#A17");
6484 if (EventLog.Exists ("monologtemp"))
6485 EventLog.Delete ("monologtemp");
6490 public void WriteEntry10_Message_Null ()
6492 if (EventLogImplType == NULL_IMPL)
6493 // test cannot pass with NULL implementation
6496 if (EventLog.SourceExists ("monotempsource", "."))
6497 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6499 if (EventLog.Exists ("monologtemp", "."))
6500 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6502 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6504 EventLog.WriteEntry ("monotempsource", null,
6505 EventLogEntryType.FailureAudit, 76, 8, new byte [0]);
6507 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6508 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6509 Assert.IsNotNull (entry, "#A1");
6510 Assert.IsNotNull (entry.Category, "#A2");
6511 Assert.AreEqual ("(8)", entry.Category, "#A3");
6512 Assert.AreEqual (8, entry.CategoryNumber, "#A4");
6513 Assert.IsNotNull (entry.Data, "#A5");
6514 Assert.AreEqual (0, entry.Data.Length, "#A6");
6515 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#A7");
6516 Assert.AreEqual (76, entry.EventID, "#A8");
6518 Assert.AreEqual (entry.EventID, entry.InstanceId, "#A9");
6520 Assert.IsNotNull (entry.MachineName, "#A10");
6521 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#A11");
6522 Assert.IsNotNull (entry.ReplacementStrings, "#A12");
6523 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#A13");
6524 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#A14");
6525 Assert.IsNotNull (entry.Source, "#A15");
6526 Assert.AreEqual ("monotempsource", entry.Source, "#A16");
6527 Assert.IsNull (entry.UserName, "#A17");
6530 if (EventLog.Exists ("monologtemp"))
6531 EventLog.Delete ("monologtemp");
6536 public void WriteEntry10_Source_DoesNotExist ()
6538 if (EventLogImplType == NULL_IMPL)
6539 // test cannot pass with NULL implementation
6542 if (EventLog.SourceExists ("monotempsource", "."))
6543 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6545 bool applicationLogExists = EventLog.Exists ("Application");
6547 EventLog.WriteEntry ("monotempsource", "test",
6548 EventLogEntryType.SuccessAudit, 89, 3, new byte [0]);
6550 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
6551 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
6552 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
6554 if (EventLogImplType == WIN32_IMPL)
6555 // win32 API does not return entries in order for
6559 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
6560 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6561 Assert.IsNotNull (entry, "#B1");
6562 Assert.IsNotNull (entry.Category, "#B2");
6563 Assert.AreEqual ("(3)", entry.Category, "#B3");
6564 Assert.AreEqual (3, entry.CategoryNumber, "#B4");
6565 Assert.IsNotNull (entry.Data, "#B5");
6566 Assert.AreEqual (0, entry.Data.Length, "#B6");
6567 Assert.AreEqual (EventLogEntryType.SuccessAudit, entry.EntryType, "#B7");
6568 Assert.AreEqual (89, entry.EventID, "#B8");
6570 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6572 Assert.IsNotNull (entry.MachineName, "#B10");
6573 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6574 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6575 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
6576 Assert.AreEqual ("test", entry.ReplacementStrings [0], "#B14");
6577 Assert.IsNotNull (entry.Source, "#B15");
6578 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
6579 Assert.IsNull (entry.UserName, "#B17");
6582 if (!applicationLogExists) {
6583 if (EventLog.Exists ("Application"))
6584 EventLog.Delete ("Application");
6586 if (EventLog.SourceExists ("monotempsource", "."))
6587 EventLog.DeleteEventSource ("monotempsource", ".");
6593 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6594 public void WriteEntry10_Source_Empty ()
6596 EventLog.WriteEntry (string.Empty, "test", EventLogEntryType.Warning,
6597 5, 4, new byte [0]);
6601 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6602 public void WriteEntry10_Source_Null ()
6604 EventLog.WriteEntry (null, "test", EventLogEntryType.Error, 5, 4,
6609 [ExpectedException (typeof (InvalidEnumArgumentException))] // Enum argument value 666 is not valid for type. type should be a value from EventLogEntryType.
6610 public void WriteEntry10_Type_NotDefined ()
6612 EventLog.WriteEntry ("monotempsource", "test", (EventLogEntryType) 666,
6613 4, 3, new byte [0]);
6618 public void WriteEvent1 ()
6620 if (EventLog.SourceExists ("monotempsource", "."))
6621 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6623 if (EventLog.Exists ("monologtemp", "."))
6624 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6626 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6628 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6629 EventInstance instance = new EventInstance (5, 666,
6630 EventLogEntryType.FailureAudit);
6631 eventLog.WriteEvent (instance, 5, "new" + Environment.NewLine + "line", true, null);
6633 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6634 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6635 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6636 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6637 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6638 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
6639 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
6641 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6642 Assert.IsNotNull (entry, "#B1");
6643 Assert.IsNotNull (entry.Category, "#B2");
6644 Assert.AreEqual ("(666)", entry.Category, "#B3");
6645 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
6646 Assert.IsNotNull (entry.Data, "#B5");
6647 Assert.AreEqual (0, entry.Data.Length, "#B6");
6648 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
6649 Assert.AreEqual (5, entry.EventID, "#B8");
6650 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6651 Assert.IsNotNull (entry.MachineName, "#B10");
6652 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6653 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6654 Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
6655 Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
6656 Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
6657 Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
6658 Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
6659 Assert.IsNotNull (entry.Source, "#B18");
6660 Assert.AreEqual ("monotempsource", entry.Source, "#B19");
6661 Assert.IsNull (entry.UserName, "#B20");
6663 eventLog.WriteEvent (instance);
6665 entry = eventLog.Entries [eventLog.Entries.Count - 1];
6666 Assert.IsNotNull (entry, "#C1");
6667 Assert.IsNotNull (entry.Category, "#C2");
6668 Assert.AreEqual ("(666)", entry.Category, "#C3");
6669 Assert.AreEqual (666, entry.CategoryNumber, "#C4");
6670 Assert.IsNotNull (entry.Data, "#C5");
6671 Assert.AreEqual (0, entry.Data.Length, "#C6");
6672 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
6673 Assert.AreEqual (5, entry.EventID, "#C8");
6674 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
6675 Assert.IsNotNull (entry.MachineName, "#C10");
6676 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
6677 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
6678 Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
6679 Assert.IsNotNull (entry.Source, "#C14");
6680 Assert.AreEqual ("monotempsource", entry.Source, "#C15");
6681 Assert.IsNull (entry.UserName, "#C16");
6684 if (EventLog.Exists ("monologtemp"))
6685 EventLog.Delete ("monologtemp");
6690 [ExpectedException (typeof (ArgumentNullException))]
6691 public void WriteEvent1_Instance_Null ()
6693 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6694 eventLog.WriteEvent (null, "replace");
6699 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6700 public void WriteEvent1_Source_Empty ()
6702 using (EventLog eventLog = new EventLog ("monologtemp")) {
6703 EventInstance instance = new EventInstance (5, 1,
6704 EventLogEntryType.Information);
6705 eventLog.WriteEvent (instance, "replace");
6710 public void WriteEvent1_Source_DoesNotExist ()
6712 if (EventLogImplType == NULL_IMPL)
6713 // test cannot pass with NULL implementation
6716 if (EventLog.SourceExists ("monotempsource", "."))
6717 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6719 if (EventLog.SourceExists ("monoothersource", "."))
6720 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
6722 if (EventLog.Exists ("monologtemp", "."))
6723 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6725 EventLog.CreateEventSource ("monoothersource", "monologtemp");
6727 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6728 EventInstance instance = new EventInstance (5, 1,
6729 EventLogEntryType.Error);
6730 eventLog.WriteEvent (instance, "replace1", "replace2");
6732 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6733 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6734 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6735 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6736 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6737 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A6");
6739 EventLogEntry entry = eventLog.Entries[eventLog.Entries.Count - 1];
6740 Assert.IsNotNull (entry, "#B1");
6741 Assert.IsNotNull (entry.Category, "#B2");
6742 Assert.AreEqual ("(1)", entry.Category, "#B3");
6743 Assert.AreEqual (1, entry.CategoryNumber, "#B4");
6744 Assert.IsNotNull (entry.Data, "#B5");
6745 Assert.AreEqual (0, entry.Data.Length, "#B6");
6746 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
6747 Assert.AreEqual (5, entry.EventID, "#B8");
6748 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6749 Assert.IsNotNull (entry.MachineName, "#B10");
6750 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6751 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6752 Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
6753 Assert.AreEqual ("replace1", entry.ReplacementStrings[0], "#B14");
6754 Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
6755 Assert.IsNotNull (entry.Source, "#B16");
6756 Assert.AreEqual ("monotempsource", entry.Source, "#B17");
6757 Assert.IsNull (entry.UserName, "#B18");
6760 if (EventLog.Exists ("monologtemp"))
6761 EventLog.Delete ("monologtemp");
6766 public void WriteEvent1_Values_Null ()
6768 if (EventLog.SourceExists ("monotempsource", "."))
6769 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6771 if (EventLog.Exists ("monologtemp", "."))
6772 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6774 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6776 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6777 EventInstance instance = new EventInstance (5, 666,
6778 EventLogEntryType.Warning);
6779 eventLog.WriteEvent (instance, (object) null);
6781 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6782 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6783 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6784 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6785 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6786 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
6787 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
6789 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6790 Assert.IsNotNull (entry, "#B1");
6791 Assert.IsNotNull (entry.Category, "#B2");
6792 Assert.AreEqual ("(666)", entry.Category, "#B3");
6793 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
6794 Assert.IsNotNull (entry.Data, "#B5");
6795 Assert.AreEqual (0, entry.Data.Length, "#B6");
6796 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
6797 Assert.AreEqual (5, entry.EventID, "#B8");
6798 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6799 Assert.IsNotNull (entry.MachineName, "#B10");
6800 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6801 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6802 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
6803 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
6804 Assert.IsNotNull (entry.Source, "#B15");
6805 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
6806 Assert.IsNull (entry.UserName, "#B17");
6809 if (EventLog.Exists ("monologtemp"))
6810 EventLog.Delete ("monologtemp");
6815 public void WriteEvent2 ()
6817 if (EventLog.SourceExists ("monotempsource", "."))
6818 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6820 if (EventLog.Exists ("monologtemp", "."))
6821 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6823 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6825 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6826 byte [] data = new byte [] { 23, 54 };
6827 EventInstance instance = new EventInstance (5, 666,
6828 EventLogEntryType.FailureAudit);
6829 eventLog.WriteEvent (instance, data, 5, "new" + Environment.NewLine + "line", true, null);
6831 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6832 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6833 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6834 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6835 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6836 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
6837 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
6839 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6840 Assert.IsNotNull (entry, "#B1");
6841 Assert.IsNotNull (entry.Category, "#B2");
6842 Assert.AreEqual ("(666)", entry.Category, "#B3");
6843 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
6844 Assert.IsNotNull (entry.Data, "#B5");
6845 Assert.AreEqual (data, entry.Data, "#B6");
6846 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
6847 Assert.AreEqual (5, entry.EventID, "#B8");
6848 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6849 Assert.IsNotNull (entry.MachineName, "#B10");
6850 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6851 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6852 Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
6853 Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
6854 Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
6855 Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
6856 Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
6857 Assert.IsNotNull (entry.Source, "#B18");
6858 Assert.AreEqual ("monotempsource", entry.Source, "#B19");
6859 Assert.IsNull (entry.UserName, "#B20");
6861 eventLog.WriteEvent (instance, data);
6863 entry = eventLog.Entries [eventLog.Entries.Count - 1];
6864 Assert.IsNotNull (entry, "#C1");
6865 Assert.IsNotNull (entry.Category, "#C2");
6866 Assert.AreEqual ("(666)", entry.Category, "#C3");
6867 Assert.AreEqual (666, entry.CategoryNumber, "#C4");
6868 Assert.IsNotNull (entry.Data, "#C5");
6869 Assert.AreEqual (data, entry.Data, "#C6");
6870 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
6871 Assert.AreEqual (5, entry.EventID, "#C8");
6872 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
6873 Assert.IsNotNull (entry.MachineName, "#C10");
6874 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
6875 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
6876 Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
6877 Assert.IsNotNull (entry.Source, "#C14");
6878 Assert.AreEqual ("monotempsource", entry.Source, "#C15");
6879 Assert.IsNull (entry.UserName, "#C16");
6882 if (EventLog.Exists ("monologtemp"))
6883 EventLog.Delete ("monologtemp");
6888 public void WriteEvent2_Data_Null ()
6890 if (EventLog.SourceExists ("monotempsource", "."))
6891 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6893 if (EventLog.Exists ("monologtemp", "."))
6894 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6896 EventLog.CreateEventSource ("monotempsource", "monologtemp");
6898 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6899 EventInstance instance = new EventInstance (5, 444,
6900 EventLogEntryType.Warning);
6901 eventLog.WriteEvent (instance, null, "replace1", null, "replace3");
6903 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6904 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6905 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6906 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6907 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6908 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
6909 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
6911 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6912 Assert.IsNotNull (entry, "#B1");
6913 Assert.IsNotNull (entry.Category, "#B2");
6914 Assert.AreEqual ("(444)", entry.Category, "#B3");
6915 Assert.AreEqual (444, entry.CategoryNumber, "#B4");
6916 Assert.IsNotNull (entry.Data, "#B5");
6917 Assert.AreEqual (0, entry.Data.Length, "#B6");
6918 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
6919 Assert.AreEqual (5, entry.EventID, "#B8");
6920 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
6921 Assert.IsNotNull (entry.MachineName, "#B10");
6922 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
6923 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
6924 Assert.AreEqual (3, entry.ReplacementStrings.Length, "#B13");
6925 Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
6926 Assert.AreEqual (string.Empty, entry.ReplacementStrings [1], "#B15");
6927 Assert.AreEqual ("replace3", entry.ReplacementStrings [2], "#B16");
6928 Assert.IsNotNull (entry.Source, "#B17");
6929 Assert.AreEqual ("monotempsource", entry.Source, "#B18");
6930 Assert.IsNull (entry.UserName, "#B19");
6933 if (EventLog.Exists ("monologtemp"))
6934 EventLog.Delete ("monologtemp");
6940 [ExpectedException (typeof (ArgumentNullException))]
6941 public void WriteEvent2_Instance_Null ()
6943 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6944 eventLog.WriteEvent (null, new byte [0], "replace");
6949 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
6950 public void WriteEvent2_Source_Empty ()
6952 using (EventLog eventLog = new EventLog ("monologtemp")) {
6953 EventInstance instance = new EventInstance (5, 1,
6954 EventLogEntryType.Information);
6955 eventLog.WriteEvent (instance, new byte [0], "replace");
6960 public void WriteEvent2_Source_DoesNotExist ()
6962 if (EventLogImplType == NULL_IMPL)
6963 // test cannot pass with NULL implementation
6966 if (EventLog.SourceExists ("monotempsource", "."))
6967 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
6969 if (EventLog.SourceExists ("monoothersource", "."))
6970 Assert.Ignore ("Event log source 'monoothersource' should not exist.");
6972 if (EventLog.Exists ("monologtemp", "."))
6973 Assert.Ignore ("Event log 'monologtemp' should not exist.");
6975 EventLog.CreateEventSource ("monoothersource", "monologtemp");
6977 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
6978 byte [] data = new byte [] { 23, 54 };
6979 EventInstance instance = new EventInstance (5, 1,
6980 EventLogEntryType.Error);
6981 eventLog.WriteEvent (instance, data, "replace1", "replace2");
6983 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
6984 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
6985 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
6986 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
6987 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
6988 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
6989 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
6991 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
6992 Assert.IsNotNull (entry, "#B1");
6993 Assert.IsNotNull (entry.Category, "#B2");
6994 Assert.AreEqual ("(1)", entry.Category, "#B3");
6995 Assert.AreEqual (1, entry.CategoryNumber, "#B4");
6996 Assert.IsNotNull (entry.Data, "#B5");
6997 Assert.AreEqual (data, entry.Data, "#B6");
6998 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
6999 Assert.AreEqual (5, entry.EventID, "#B8");
7000 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7001 Assert.IsNotNull (entry.MachineName, "#B10");
7002 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7003 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7004 Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
7005 Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
7006 Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
7007 Assert.IsNotNull (entry.Source, "#B16");
7008 Assert.AreEqual ("monotempsource", entry.Source, "#B17");
7009 Assert.IsNull (entry.UserName, "#B18");
7012 if (EventLog.Exists ("monologtemp"))
7013 EventLog.Delete ("monologtemp");
7018 public void WriteEvent2_Values_Null ()
7020 if (EventLog.SourceExists ("monotempsource", "."))
7021 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7023 if (EventLog.Exists ("monologtemp", "."))
7024 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7026 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7028 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7029 byte [] data = new byte [] { 23, 54 };
7030 EventInstance instance = new EventInstance (5, 556,
7031 EventLogEntryType.Warning);
7032 eventLog.WriteEvent (instance, data, (object) null);
7034 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7035 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7036 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7037 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7038 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7039 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7040 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7042 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7043 Assert.IsNotNull (entry, "#B1");
7044 Assert.IsNotNull (entry.Category, "#B2");
7045 Assert.AreEqual ("(556)", entry.Category, "#B3");
7046 Assert.AreEqual (556, entry.CategoryNumber, "#B4");
7047 Assert.IsNotNull (entry.Data, "#B5");
7048 Assert.AreEqual (data, entry.Data, "#B6");
7049 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
7050 Assert.AreEqual (5, entry.EventID, "#B8");
7051 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7052 Assert.IsNotNull (entry.MachineName, "#B10");
7053 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7054 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7055 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
7056 Assert.IsNotNull (entry.Source, "#B14");
7057 Assert.AreEqual ("monotempsource", entry.Source, "#B15");
7058 Assert.IsNull (entry.UserName, "#B16");
7061 if (EventLog.Exists ("monologtemp"))
7062 EventLog.Delete ("monologtemp");
7067 public void WriteEvent3 ()
7069 if (EventLog.SourceExists ("monotempsource", "."))
7070 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7072 if (EventLog.Exists ("monologtemp", "."))
7073 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7075 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7077 EventInstance instance = new EventInstance (5, 666,
7078 EventLogEntryType.FailureAudit);
7079 EventLog.WriteEvent ("monotempsource", instance, 5, "new"
7080 + Environment.NewLine + "line", true, null);
7082 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7083 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7084 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7085 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7086 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7087 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7088 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7089 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7091 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7092 Assert.IsNotNull (entry, "#B1");
7093 Assert.IsNotNull (entry.Category, "#B2");
7094 Assert.AreEqual ("(666)", entry.Category, "#B3");
7095 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
7096 Assert.IsNotNull (entry.Data, "#B5");
7097 Assert.AreEqual (0, entry.Data.Length, "#B6");
7098 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
7099 Assert.AreEqual (5, entry.EventID, "#B8");
7100 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7101 Assert.IsNotNull (entry.MachineName, "#B10");
7102 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7103 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7104 Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
7105 Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
7106 Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
7107 Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
7108 Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
7109 Assert.IsNotNull (entry.Source, "#B18");
7110 Assert.AreEqual ("monotempsource", entry.Source, "#B19");
7111 Assert.IsNull (entry.UserName, "#B20");
7113 EventLog.WriteEvent ("monotempsource", instance);
7115 entry = eventLog.Entries [eventLog.Entries.Count - 1];
7116 Assert.IsNotNull (entry, "#C1");
7117 Assert.IsNotNull (entry.Category, "#C2");
7118 Assert.AreEqual ("(666)", entry.Category, "#C3");
7119 Assert.AreEqual (666, entry.CategoryNumber, "#C4");
7120 Assert.IsNotNull (entry.Data, "#C5");
7121 Assert.AreEqual (0, entry.Data.Length, "#C6");
7122 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
7123 Assert.AreEqual (5, entry.EventID, "#C8");
7124 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
7125 Assert.IsNotNull (entry.MachineName, "#C10");
7126 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
7127 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
7128 Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
7129 Assert.IsNotNull (entry.Source, "#C14");
7130 Assert.AreEqual ("monotempsource", entry.Source, "#C15");
7131 Assert.IsNull (entry.UserName, "#C16");
7134 if (EventLog.Exists ("monologtemp"))
7135 EventLog.Delete ("monologtemp");
7140 [ExpectedException (typeof (ArgumentNullException))]
7141 public void WriteEvent3_Instance_Null ()
7143 EventLog.WriteEvent ("monotempsource", null);
7147 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
7148 public void WriteEvent3_Source_Empty ()
7150 EventInstance instance = new EventInstance (5, 1,
7151 EventLogEntryType.Information);
7152 EventLog.WriteEvent (string.Empty, instance);
7156 public void WriteEvent3_Source_DoesNotExist ()
7158 if (EventLogImplType == NULL_IMPL)
7159 // test cannot pass with NULL implementation
7162 if (EventLog.SourceExists ("monotempsource", "."))
7163 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7165 bool applicationLogExists = EventLog.Exists ("Application");
7167 EventInstance instance = new EventInstance (666, 1,
7168 EventLogEntryType.Error);
7169 EventLog.WriteEvent ("monotempsource", instance, "replace1", "replace2");
7171 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
7172 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
7173 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
7175 if (EventLogImplType == WIN32_IMPL)
7176 // win32 API does not return entries in order for
7180 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
7181 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7182 Assert.IsNotNull (entry, "#B1");
7183 Assert.IsNotNull (entry.Category, "#B2");
7184 Assert.AreEqual ("(1)", entry.Category, "#B3");
7185 Assert.AreEqual (1, entry.CategoryNumber, "#B4");
7186 Assert.IsNotNull (entry.Data, "#B5");
7187 Assert.AreEqual (0, entry.Data.Length, "#B6");
7188 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
7189 Assert.AreEqual (666, entry.EventID, "#B8");
7190 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7191 Assert.IsNotNull (entry.MachineName, "#B10");
7192 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7193 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7194 Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
7195 Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
7196 Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
7197 Assert.IsNotNull (entry.Source, "#B16");
7198 Assert.AreEqual ("monotempsource", entry.Source, "#B17");
7199 Assert.IsNull (entry.UserName, "#B18");
7202 if (!applicationLogExists) {
7203 if (EventLog.Exists ("Application"))
7204 EventLog.Delete ("Application");
7206 if (EventLog.SourceExists ("monotempsource", "."))
7207 EventLog.DeleteEventSource ("monotempsource", ".");
7213 public void WriteEvent3_Values_Null ()
7215 if (EventLog.SourceExists ("monotempsource", "."))
7216 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7218 if (EventLog.Exists ("monologtemp", "."))
7219 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7221 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7223 EventInstance instance = new EventInstance (5, 666,
7224 EventLogEntryType.Warning);
7225 EventLog.WriteEvent ("monotempsource", instance, (object) null);
7227 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7228 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7229 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7230 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7231 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7232 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7233 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7234 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7236 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7237 Assert.IsNotNull (entry, "#B1");
7238 Assert.IsNotNull (entry.Category, "#B2");
7239 Assert.AreEqual ("(666)", entry.Category, "#B3");
7240 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
7241 Assert.IsNotNull (entry.Data, "#B5");
7242 Assert.AreEqual (0, entry.Data.Length, "#B6");
7243 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
7244 Assert.AreEqual (5, entry.EventID, "#B8");
7245 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7246 Assert.IsNotNull (entry.MachineName, "#B10");
7247 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7248 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7249 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
7250 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
7251 Assert.IsNotNull (entry.Source, "#B15");
7252 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
7253 Assert.IsNull (entry.UserName, "#B17");
7256 if (EventLog.Exists ("monologtemp"))
7257 EventLog.Delete ("monologtemp");
7262 public void WriteEvent4 ()
7264 if (EventLog.SourceExists ("monotempsource", "."))
7265 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7267 if (EventLog.Exists ("monologtemp", "."))
7268 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7270 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7272 byte [] data = new byte [] { 23, 54 };
7273 EventInstance instance = new EventInstance (5, 666,
7274 EventLogEntryType.FailureAudit);
7275 EventLog.WriteEvent ("monotempsource", instance, data, 5, "new"
7276 + Environment.NewLine + "line", true, null);
7278 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7279 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7280 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7281 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7282 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7283 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7284 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7285 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7287 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7288 Assert.IsNotNull (entry, "#B1");
7289 Assert.IsNotNull (entry.Category, "#B2");
7290 Assert.AreEqual ("(666)", entry.Category, "#B3");
7291 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
7292 Assert.IsNotNull (entry.Data, "#B5");
7293 Assert.AreEqual (data, entry.Data, "#B6");
7294 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#B7");
7295 Assert.AreEqual (5, entry.EventID, "#B8");
7296 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7297 Assert.IsNotNull (entry.MachineName, "#B10");
7298 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7299 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7300 Assert.AreEqual (4, entry.ReplacementStrings.Length, "#B13");
7301 Assert.AreEqual ("5", entry.ReplacementStrings [0], "#B14");
7302 Assert.AreEqual ("new" + Environment.NewLine + "line", entry.ReplacementStrings [1], "#B15");
7303 Assert.AreEqual (true.ToString (), entry.ReplacementStrings [2], "#B16");
7304 Assert.AreEqual (string.Empty, entry.ReplacementStrings [3], "#B17");
7305 Assert.IsNotNull (entry.Source, "#B18");
7306 Assert.AreEqual ("monotempsource", entry.Source, "#B19");
7307 Assert.IsNull (entry.UserName, "#B20");
7309 EventLog.WriteEvent ("monotempsource", instance, data);
7311 entry = eventLog.Entries [eventLog.Entries.Count - 1];
7312 Assert.IsNotNull (entry, "#C1");
7313 Assert.IsNotNull (entry.Category, "#C2");
7314 Assert.AreEqual ("(666)", entry.Category, "#C3");
7315 Assert.AreEqual (666, entry.CategoryNumber, "#C4");
7316 Assert.IsNotNull (entry.Data, "#C5");
7317 Assert.AreEqual (data, entry.Data, "#C6");
7318 Assert.AreEqual (EventLogEntryType.FailureAudit, entry.EntryType, "#C7");
7319 Assert.AreEqual (5, entry.EventID, "#C8");
7320 Assert.AreEqual (entry.EventID, entry.InstanceId, "#C9");
7321 Assert.IsNotNull (entry.MachineName, "#C10");
7322 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#C11");
7323 Assert.IsNotNull (entry.ReplacementStrings, "#C12");
7324 Assert.AreEqual (0, entry.ReplacementStrings.Length, "#C13");
7325 Assert.IsNotNull (entry.Source, "#C14");
7326 Assert.AreEqual ("monotempsource", entry.Source, "#C15");
7327 Assert.IsNull (entry.UserName, "#C16");
7330 if (EventLog.Exists ("monologtemp"))
7331 EventLog.Delete ("monologtemp");
7336 public void WriteEvent4_Data_Null ()
7338 if (EventLog.SourceExists ("monotempsource", "."))
7339 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7341 if (EventLog.Exists ("monologtemp", "."))
7342 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7344 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7346 EventInstance instance = new EventInstance (5, 444,
7347 EventLogEntryType.Warning);
7348 EventLog.WriteEvent ("monotempsource", instance, null, "replace1", null, "replace3");
7350 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7351 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7352 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7353 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7354 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7355 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7356 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7357 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7359 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7360 Assert.IsNotNull (entry, "#B1");
7361 Assert.IsNotNull (entry.Category, "#B2");
7362 Assert.AreEqual ("(444)", entry.Category, "#B3");
7363 Assert.AreEqual (444, entry.CategoryNumber, "#B4");
7364 Assert.IsNotNull (entry.Data, "#B5");
7365 Assert.AreEqual (0, entry.Data.Length, "#B6");
7366 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
7367 Assert.AreEqual (5, entry.EventID, "#B8");
7368 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7369 Assert.IsNotNull (entry.MachineName, "#B10");
7370 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7371 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7372 Assert.AreEqual (3, entry.ReplacementStrings.Length, "#B13");
7373 Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
7374 Assert.AreEqual (string.Empty, entry.ReplacementStrings [1], "#B15");
7375 Assert.AreEqual ("replace3", entry.ReplacementStrings [2], "#B16");
7376 Assert.IsNotNull (entry.Source, "#B17");
7377 Assert.AreEqual ("monotempsource", entry.Source, "#B18");
7378 Assert.IsNull (entry.UserName, "#B19");
7381 if (EventLog.Exists ("monologtemp"))
7382 EventLog.Delete ("monologtemp");
7387 [ExpectedException (typeof (ArgumentNullException))]
7388 public void WriteEvent4_Instance_Null ()
7390 EventLog.WriteEvent ("monotempsource", null, new byte [0]);
7394 [ExpectedException (typeof (ArgumentException))] // Source property was not set before writing to the event log
7395 public void WriteEvent4_Source_Empty ()
7397 EventInstance instance = new EventInstance (5, 1,
7398 EventLogEntryType.Information);
7399 EventLog.WriteEvent (string.Empty, instance, new byte [0]);
7403 public void WriteEvent4_Source_DoesNotExist ()
7405 if (EventLogImplType == NULL_IMPL)
7406 // test cannot pass with NULL implementation
7409 if (EventLog.SourceExists ("monotempsource", "."))
7410 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7412 bool applicationLogExists = EventLog.Exists ("Application");
7414 byte [] data = new byte [] { 23, 54 };
7415 EventInstance instance = new EventInstance (666, 1,
7416 EventLogEntryType.Error);
7417 EventLog.WriteEvent ("monotempsource", instance, data, "replace1", "replace2");
7419 Assert.IsTrue (EventLog.Exists ("Application"), "#A1");
7420 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A2");
7421 Assert.AreEqual ("Application", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A3");
7423 if (EventLogImplType == WIN32_IMPL)
7424 // win32 API does not return entries in order for
7428 using (EventLog eventLog = new EventLog ("Application", ".", "monotempsource")) {
7429 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7430 Assert.IsNotNull (entry, "#B1");
7431 Assert.IsNotNull (entry.Category, "#B2");
7432 Assert.AreEqual ("(1)", entry.Category, "#B3");
7433 Assert.AreEqual (1, entry.CategoryNumber, "#B4");
7434 Assert.IsNotNull (entry.Data, "#B5");
7435 Assert.AreEqual (data, entry.Data, "#B6");
7436 Assert.AreEqual (EventLogEntryType.Error, entry.EntryType, "#B7");
7437 Assert.AreEqual (666, entry.EventID, "#B8");
7438 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7439 Assert.IsNotNull (entry.MachineName, "#B10");
7440 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7441 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7442 Assert.AreEqual (2, entry.ReplacementStrings.Length, "#B13");
7443 Assert.AreEqual ("replace1", entry.ReplacementStrings [0], "#B14");
7444 Assert.AreEqual ("replace2", entry.ReplacementStrings [1], "#B15");
7445 Assert.IsNotNull (entry.Source, "#B16");
7446 Assert.AreEqual ("monotempsource", entry.Source, "#B17");
7447 Assert.IsNull (entry.UserName, "#B18");
7450 if (!applicationLogExists) {
7451 if (EventLog.Exists ("Application"))
7452 EventLog.Delete ("Application");
7454 if (EventLog.SourceExists ("monotempsource", "."))
7455 EventLog.DeleteEventSource ("monotempsource", ".");
7461 public void WriteEvent4_Values_Null ()
7463 if (EventLog.SourceExists ("monotempsource", "."))
7464 Assert.Ignore ("Event log source 'monotempsource' should not exist.");
7466 if (EventLog.Exists ("monologtemp", "."))
7467 Assert.Ignore ("Event log 'monologtemp' should not exist.");
7469 EventLog.CreateEventSource ("monotempsource", "monologtemp");
7471 byte [] data = new byte [] { 23, 54 };
7472 EventInstance instance = new EventInstance (5, 666,
7473 EventLogEntryType.Warning);
7474 EventLog.WriteEvent ("monotempsource", instance, data, (object) null);
7476 using (EventLog eventLog = new EventLog ("monologtemp", ".", "monotempsource")) {
7477 // MSBUG: Assert.AreEqual (1, eventLog.Entries.Count, "#A1");
7478 Assert.AreEqual ("monologtemp", eventLog.Log, "#A2");
7479 Assert.AreEqual ("monotempsource", eventLog.Source, "#A3");
7480 Assert.IsTrue (EventLog.Exists ("monologtemp"), "#A4");
7481 Assert.IsTrue (EventLog.SourceExists ("monotempsource"), "#A5");
7482 Assert.IsTrue (EventLog.SourceExists ("monologtemp"), "#A6");
7483 Assert.AreEqual ("monologtemp", EventLog.LogNameFromSourceName ("monotempsource", "."), "#A7");
7485 EventLogEntry entry = eventLog.Entries [eventLog.Entries.Count - 1];
7486 Assert.IsNotNull (entry, "#B1");
7487 Assert.IsNotNull (entry.Category, "#B2");
7488 Assert.AreEqual ("(666)", entry.Category, "#B3");
7489 Assert.AreEqual (666, entry.CategoryNumber, "#B4");
7490 Assert.IsNotNull (entry.Data, "#B5");
7491 Assert.AreEqual (data, entry.Data, "#B6");
7492 Assert.AreEqual (EventLogEntryType.Warning, entry.EntryType, "#B7");
7493 Assert.AreEqual (5, entry.EventID, "#B8");
7494 Assert.AreEqual (entry.EventID, entry.InstanceId, "#B9");
7495 Assert.IsNotNull (entry.MachineName, "#B10");
7496 Assert.AreEqual (Environment.MachineName, entry.MachineName, "#B11");
7497 Assert.IsNotNull (entry.ReplacementStrings, "#B12");
7498 Assert.AreEqual (1, entry.ReplacementStrings.Length, "#B13");
7499 Assert.AreEqual (string.Empty, entry.ReplacementStrings [0], "#B14");
7500 Assert.IsNotNull (entry.Source, "#B15");
7501 Assert.AreEqual ("monotempsource", entry.Source, "#B16");
7502 Assert.IsNull (entry.UserName, "#B17");
7505 if (EventLog.Exists ("monologtemp"))
7506 EventLog.Delete ("monologtemp");
7511 private static RegistryKey EventLogKey {
7513 return Registry.LocalMachine.OpenSubKey (@"SYSTEM\CurrentControlSet\Services\EventLog", true);
7517 private static RegistryKey FindLogKeyByName (string logName)
7519 RegistryKey eventLogKey = null;
7521 eventLogKey = EventLogKey;
7522 if (eventLogKey == null)
7523 Assert.Fail ("Event log key does not exist");
7525 RegistryKey logKey = eventLogKey.OpenSubKey (logName, true);
7530 if (eventLogKey != null)
7531 eventLogKey.Close ();
7535 private static RegistryKey FindSourceKeyByName (string source) {
7536 RegistryKey eventLogKey = null;
7538 eventLogKey = EventLogKey;
7539 if (eventLogKey == null)
7540 Assert.Fail ("Event log key does not exist");
7542 string[] subKeys = eventLogKey.GetSubKeyNames ();
7543 for (int i = 0; i < subKeys.Length; i++) {
7544 using (RegistryKey logKey = eventLogKey.OpenSubKey (subKeys[i], true)) {
7545 if (logKey != null) {
7546 RegistryKey sourceKey = logKey.OpenSubKey (source, true);
7547 if (sourceKey != null)
7554 if (eventLogKey != null)
7555 eventLogKey.Close ();
7559 private static bool Win32EventLogEnabled {
7561 return (Environment.OSVersion.Platform == PlatformID.Win32NT);
7565 // IMPORTANT: keep this in sync with System.Diagnostics.EventLog.EventLogImplType
7566 private static string EventLogImplType {
7568 string implType = Environment.GetEnvironmentVariable (EVENTLOG_TYPE_VAR);
7569 if (implType == null) {
7570 if (Win32EventLogEnabled)
7572 implType = NULL_IMPL;
7574 if (Win32EventLogEnabled && string.Compare (implType, WIN32_IMPL, true) == 0)
7575 implType = WIN32_IMPL;
7576 else if (string.Compare (implType, NULL_IMPL, true) == 0)
7577 implType = NULL_IMPL;
7578 else if (string.Compare (implType, 0, LOCAL_FILE_IMPL, 0, LOCAL_FILE_IMPL.Length, true) == 0)
7579 implType = LOCAL_FILE_IMPL;
7581 throw new NotSupportedException (string.Format (
7582 CultureInfo.InvariantCulture, "Eventlog implementation"
7583 + " '{0}' is not supported.", implType));