public void SutIsMessageWriter() { // Fixture setup var dummyMessageWriter = new Mock <IMessageWriter>().Object; // Exercise system var sut = new SecureMessageWriter(dummyMessageWriter); // Verify outcome Assert.IsAssignableFrom <IMessageWriter>(sut); // Teardown }
public static void Test_3() { try { IMessageWriter writer = new SecureMessageWriter(new ConsoleMessageWriter()); var salutation = new Salutation(writer); salutation.Exclaim(); } catch (UnauthorizedAccessException e) { Console.WriteLine(e); } }
public void WriteDoesNotInvokeWriterWhenPrincipalIsNotAuthenticated() { // Arrange var writer = new SpyMessageWriter(); SecureMessageWriter sut = CreateSecureMessageWriter(writer: writer, identity: AnonymousIdentity); // Act sut.Write("Anonymous value"); // Assert Assert.Equal(expected: 0, actual: writer.MessageCount); }
public void WriteInvokesDecoratedWriterWhenPrincipalIsAuthenticated() { // Arrange string expectedMessage = "Whatever"; var writer = new SpyMessageWriter(); SecureMessageWriter sut = CreateSecureMessageWriter(writer: writer, identity: AuthenticatedIdentity); // Act sut.Write(expectedMessage); // Assert Assert.Equal(expected: expectedMessage, actual: writer.WrittenMessage); }
public void TestSecureWriterNoAuth() { // arrange var writer = new Mock <IMessageWriter>(); var identity = new Mock <IIdentity>(); identity.SetupGet(i => i.IsAuthenticated).Returns(false); var secureWriter = new SecureMessageWriter(writer.Object, identity.Object); // act secureWriter.Write("test"); // assert writer.Verify(w => w.Write("test"), Times.Never()); }
public void WriteDoesNotInvokeWriterWhenPrincipalIsNotAuthenticated() { // Fixture setup var principalStub = new Mock <IPrincipal>(); principalStub.SetupGet(p => p.Identity.IsAuthenticated).Returns(false); Thread.CurrentPrincipal = principalStub.Object; var writerMock = new Mock <IMessageWriter>(); var sut = new SecureMessageWriter(writerMock.Object); // Exercise system sut.Write("Anonymous value"); // Verify outcome writerMock.Verify(w => w.Write(It.IsAny <string>()), Times.Never()); // Teardown }
public static void Perform() { IMessageWriter normalWriter = new MessageWriter(); normalWriter.Message = "message"; Console.WriteLine("NormalWriter => " + normalWriter.WriteMessage()); EncryptedMessageWriter encWriter = new EncryptedMessageWriter(normalWriter); Console.WriteLine("encryptedWriter => " + encWriter.WriteMessage()); SecureMessageWriter securedWriter = new SecureMessageWriter(normalWriter); Console.WriteLine("SecuredWriter => " + securedWriter.WriteMessage()); SecureMessageWriter esWriter = new SecureMessageWriter(encWriter); Console.WriteLine("Sec, Enc Writer => " + securedWriter.WriteMessage()); Console.WriteLine(); }
static void Main(string[] args) { // 原本只要這樣一行 System.Console.WriteLine("Hello World!"); // 用 DI 的方法 IMessageWriter writer = new ConsoleMessageWriter(); var salutation = new Salutation(writer); salutation.Say("Hello DI!"); // 用裝飾者模式寫個新的 IMessageWriter 實作看看 IMessageWriter secureWriter = new SecureMessageWriter(writer, "A"); var salutation1 = new Salutation(secureWriter); salutation1.Say("Hello DI!!!!!"); }
public void WriteInvokesDecoratedWriterWhenPrincipalIsAuthenticated() { // Fixture setup var principalStub = new Mock <IPrincipal>(); principalStub.SetupGet(p => p.Identity.IsAuthenticated).Returns(true); Thread.CurrentPrincipal = principalStub.Object; var writerMock = new Mock <IMessageWriter>(); var sut = new SecureMessageWriter(writerMock.Object); // Exercise system var message = "Whatever"; sut.Write(message); // Verify outcome writerMock.Verify(w => w.Write(message)); // Teardown }
static void Main(string[] args) { //Decorate //IMessageWriter msgWriter = new EncryptedMessageWriter(new MessageWriter()); //IMessageWriter msgWriter = new SecureMessageWriter(new MessageWriter()); //IMessageWriter msgWriter = new EncryptedMessageWriter(new SecureMessageWriter(new MessageWriter())); IMessageWriter msgWriter = new SecureMessageWriter(new EncryptedMessageWriter(new MessageWriter())); msgWriter.Message = "test"; msgWriter.WriteMessage("D:\\test.txt"); //SimpleFactroy //http://www.dotblogs.com.tw/joysdw12/archive/2013/06/23/design-pattern-simple-factory-pattern.aspx DP.SimpleFactroy.BeverageStores store = new DP.SimpleFactroy.BeverageStores(new DP.SimpleFactroy.SimpleBeverageFactory()); Console.WriteLine("A 客人點了綠茶"); store.BeverageOrders("GreenTea"); Console.WriteLine("B 客人點了紅茶"); store.BeverageOrders("BlackTea"); Console.ReadLine(); }