1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Vladimir N. Molotkov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.cert; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertStoreParameters; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.LDAPCertStoreParameters; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>java.security.cert.LDAPCertStoreParameters</code> 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * fields and methods 33f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class LDAPCertStoreParametersTest extends TestCase { 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Tests 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>LDAPCertStoreParameters()</code> constructor<br> 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the default parameter values (server name "localhost", port 389) 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParameters01() { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertStoreParameters cp = new LDAPCertStoreParameters(); 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("isLDAPCertStoreParameters", 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project cp instanceof LDAPCertStoreParameters); 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>LDAPCertStoreParameters()</code> constructor<br> 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the default parameter values (server name "localhost", port 389) 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParameters02() { 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp = new LDAPCertStoreParameters(); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("host", "localhost", cp.getServerName()); 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("port", 389, cp.getPort()); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>LDAPCertStoreParameters(String)</code> constructor<br> 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the specified server name and a default port of 389 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersString01() { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertStoreParameters cp = new LDAPCertStoreParameters("myhost"); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("isLDAPCertStoreParameters", 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project cp instanceof LDAPCertStoreParameters); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>LDAPCertStoreParameters(String)</code> constructor<br> 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the specified server name and a default port of 389 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersString02() { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String serverName = "myhost"; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp = new LDAPCertStoreParameters(serverName); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("host", serverName.equals(cp.getServerName())); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("port", 389, cp.getPort()); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #3 for <code>LDAPCertStoreParameters(String)</code> constructor<br> 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: throws <code>NullPointerException</code> - 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if <code>serverName</code> is <code>null</code> 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersString03() { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters(null); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NPE expected"); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>LDAPCertStoreParameters(String, int)</code> constructor<br> 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the specified parameter values 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersStringint01() { 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertStoreParameters cp = new LDAPCertStoreParameters("myhost", 1098); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("isLDAPCertStoreParameters", 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project cp instanceof LDAPCertStoreParameters); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>LDAPCertStoreParameters(String, int)</code> constructor<br> 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Creates an instance of <code>LDAPCertStoreParameters</code> 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * with the specified parameter values 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersStringint02() { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String serverName = "myhost"; 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int portNumber = 1099; 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp = 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters(serverName, portNumber); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("host", serverName.equals(cp.getServerName())); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("port", cp.getPort() == portNumber); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #3 for <code>LDAPCertStoreParameters(String, int)</code> constructor<br> 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: throws <code>NullPointerException</code> - 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if <code>serverName</code> is <code>null</code> 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testLDAPCertStoreParametersStringint03() { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters(null, 0); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NPE expected"); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 135f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String serverName = "myhost"; 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int[] portNumber = {-1, -100, Integer.MIN_VALUE, Integer.MAX_VALUE}; 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < portNumber.length; i++) { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters(serverName, portNumber[i]); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception for incorrect integer parametr"); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>clone()</code> method<br> 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: Returns a copy of this object 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testClone() { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp1 = 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters("myhost", 1100); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp2 = (LDAPCertStoreParameters)cp1.clone(); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // check that that we have new object 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("newObject", cp1 != cp2); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("hostsTheSame", 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project cp1.getServerName().equals(cp2.getServerName())); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("portsTheSame", cp1.getPort() == cp2.getPort()); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>toString()</code> method<br> 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns the formatted string describing parameters 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testToString() { 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp1 = 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters("myhost", 1101); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(cp1.toString()); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>toString()</code> method<br> 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns the port number 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetPort() { 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int portNumber = -1099; 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp = 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters("serverName", portNumber); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(cp.getPort() == portNumber); 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test for <code>toString()</code> method<br> 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns the server name (never <code>null</code>) 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetServerName() { 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project LDAPCertStoreParameters cp = 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new LDAPCertStoreParameters("serverName"); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(cp.getServerName()); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 195